- 26 Nov, 2020 1 commit
-
-
Georges Racinet authored
Now that it inherits from OmnibusHeptapod, it had the hardcoded expected `git@localhost`, which isn't appropriate because DockerHeptapod is meant to be used from outside the container (and OmnibusHeptapod can be used from inside the container)
-
- 24 Nov, 2020 1 commit
-
-
Georges Racinet authored
This is just convenient and would also mean a fixture would be very easy to create.
-
- 25 Nov, 2020 1 commit
-
-
Georges Racinet authored
which I've been doing manually on my development workspaces. Of course the hg-native mode hadn't a chance to pass on CI before this.
-
- 19 Nov, 2020 1 commit
-
-
Georges Racinet authored
For the very few tests that need to make a difference, it's best not to assume we will use a global flag available on the Heptapod project forever. It could very well depend on the given project.
-
- 03 Nov, 2020 7 commits
-
-
Georges Racinet authored
-
Georges Racinet authored
This will allow for nicer cleanups, especially for those created in tests. We're adopting the strong cleanup capability and the larger timeout in `Project.__exit__()` to mimic what the Project fixtures do, in the hope to have them simply use the new Context Managers.
-
Georges Racinet authored
We chose to pass a whole Project instance, because it's seem very unlikely we'd have a use case for passing an id (caller would have created the target Project or would use a fixture), and therefore it makes things simpler on the average for the caller.
-
Georges Racinet authored
Proper testing of Git operation will need this.
-
Georges Racinet authored
Amazingly, the `owner_api_request()` shortcut was all we needed for a long time, but we'll now will need to be able to pass the user explicitely.
-
Georges Racinet authored
-
Georges Racinet authored
This will help reducing the boiler plate and over long statements. Leveraging in test_import for immediate testing.
-
- 17 Nov, 2020 1 commit
-
-
Georges Racinet authored
The good thing is that we finally get back to sanity with boolean operators. This is now legit: if something and othercondition:
-
- 29 Oct, 2020 2 commits
-
-
- 15 Oct, 2020 1 commit
-
-
Georges Racinet authored
This provides the way to test the repository download links (which are backed by `hg archive` and `git archive`).
-
- 12 Oct, 2020 1 commit
-
-
Georges Racinet authored
This option makes the functional tests create Mercurial native projects instead of the default type (currently `hg_git`). Hence it will be the main tool to validate HGitaly related developments. Later on, we might want to introduce dedicated CI jobs. Switching to parametrization can also be considered, but it wouldn't change so much in CI, because we now have tests sharding. The new flag is stored on the `Heptapod` object, for lack of better choice in the short term (arguably, that's not a property of the Heptapod server).
-
- 06 Oct, 2020 4 commits
-
-
Georges Racinet authored
I *kwew* that this job not running on detached MR pipelines was going to be a problem. We can live with duplication of that job.
-
Georges Racinet authored
For server-side operations, we should use the one provided by the server, obviously. The immediate need is that it varies amongst installation types With The new Omnibus packaging method (omnibus-heptapod!3) for Heptapod 0.17, it changes from /usr/local/bin (expected to be on PATH) to /opt/gitlab/embedded/bin. There are several TODOs: - read `hg_executable` from config, with remote instances being the only exceptions (but these wouldn't call server-side subprocesses from the tests). - provide a direct helper method on `Heptapod` - do the same for Git
-
Georges Racinet authored
In 7a354d699944, we had the `heptapod` fixture carry the path to the client-side Git executable, but that creates confusion between the client and server sides (actually more manifest with Mercurial, but both should be handled in the same way). Now we make the client-side Git executable path work as for Mercurial, with a command line option and centralization in the `utils.git` module. Finally, we refactor both `utils.git` and `test_ssh` so that the latter can use the standard classmethod of `git.LocalRepo`.
-
Georges Racinet authored
This seems to be necessary for CI tests inside the Docker container, because /opt/gitlab/omnibus/bin is not on the PATH of the `git` user.
-
- 05 Oct, 2020 4 commits
-
-
Georges Racinet authored
Without this, the tests may crash with the "DevToolsActivePort file doesn't exist" error upon initialization of ChromeDriver. Many resources I could find about this are in a context when the tests are run as `root`, as I did in the first experiments. But it can happen also if running a non-privileged user, such as `git` in our case. Of course `--no-sandbox` wouldn't be acceptable for systems not entirely dedicated to the task, as is the case with `OmnibusHeptapod`, but not `DockerHeptapod` (in the latter, the web driver is on the user's system, not in the container). --HG-- branch : stable
-
Georges Racinet authored
In that case the tests are to be run as the 'git' user, and depend on - availability of sudo - a sudoers configuration that gives the 'git' user the right to launch `gitlab-ctl` commands. In particular, this avoids the need to initiate the webdriver as root (which can be done but is yet another source of trouble). --HG-- branch : stable
-
Georges Racinet authored
This is from the client side, but still, depending on context, the proper one to use may not be on path. --HG-- branch : stable
-
Georges Racinet authored
The `execute` method has long been be the fundamental one whose implementation varies amongst subclasses. --HG-- branch : stable
-
- 27 Sep, 2020 1 commit
-
-
Georges Racinet authored
We still wait on the link to be displayed, but returning the whole `li` element will be useful for finer assertions, e.g., about commit SHAs. The consequence is that the `text` attribute of the returned elements is broader, encompassing the commit title, authorship and short id. --HG-- branch : stable
-
- 25 Sep, 2020 1 commit
-
-
Georges Racinet authored
It will be nicer to have it accessible from `utils.selenium` for various tests. --HG-- branch : stable
-
- 24 Sep, 2020 1 commit
-
-
Georges Racinet authored
--HG-- branch : stable
-
- 08 Sep, 2020 1 commit
-
-
Georges Racinet authored
This has been true at least since 13.1, meaning in particular that we didn't stop Rails properly in the backup tests, and that explains the high rate of data corruption I personally had with them. --HG-- branch : stable
-
- 28 Aug, 2020 1 commit
-
-
Georges Racinet authored
The confirmation modal has changed a lot (the principle stays the same), including the text to type, that we now simply copy for better independence (now has a verb and the full path). We've observed the `id` for the `modal` element to differ between source and Docker contexts. Using the `<div class="modal-dialog>` ancestor wouldn't be appropriate as the corresponding CSS selector returns another one.
-
- 04 Aug, 2020 1 commit
-
-
Georges Racinet authored
This is probably not comprehensive enough, but it's still an improvement.
-
- 23 Jul, 2020 5 commits
-
-
Georges Racinet authored
This is a bit cleaner. --HG-- branch : heptapod-0-14
-
Georges Racinet authored
This follows the general trend that these should be actually stored on `User` instances. For some new tests it's already more natural to access `webdriver` and `basic_auth_url` from the `User` instance. --HG-- branch : heptapod-0-14
-
Georges Racinet authored
There's nothing Project specific about which key, and which SSH options to use: everything is related instead to the user. Besides, for Personal Snippets repository tests, we'll need to perform SSH operations without any Project context. --HG-- branch : heptapod-0-14
-
Georges Racinet authored
These allow notably to send the requests as a given `User`. Up to now, we had such methods only for projects, and more general requests were handcrafted and generally running as `root`. --HG-- branch : heptapod-0-14
-
Georges Racinet authored
--HG-- branch : heptapod-0-14
-
- 17 Jul, 2020 2 commits
-
-
Georges Racinet authored
Will be useful for assertions --HG-- branch : heptapod-0-14
-
Georges Racinet authored
--HG-- branch : heptapod-0-14
-
- 16 Jul, 2020 1 commit
-
-
Georges Racinet authored
Previously we were relying on the global application setting to infer if a project is on legacy or hashed storage. This was obviously approximative, but on GitLab 13, that setting doesn't exist any more and all new projects are on the hashed storage. We introduce here a new boolean property on the project and methods to switch from hashed to legacy and back.
-
- 03 Jun, 2020 1 commit
-
-
Georges Racinet authored
All explanations are in the code comments.
-
- 21 Jun, 2020 1 commit
-
-
Georges Racinet authored
This helps understanding stuck test runs involving backups, hashed storage etc.
-