- Mar 15, 2022
-
-
Georges Racinet authored
Simple shell wrapper scripts have been sitting on my computers for a long time, here is a version for both instances, with the credentials singled out as environment variables or user input. This is to be run with the working copy updated to the relevant branch (`default`, `stable` or `oldstable`) for the target platform. Reasons: - the functional tests have to be adapted upon minor GitLab version changes (not systematic, yet frequent enough) - we might have different options to provide in the wrapper script itself depending on Heptapod specifics (native mode would be a prime example of that). Note: at the time of deployment of Heptapod 0.30.0 on both platforms, the stable branch is outdated, and the default branch is for Heptapod 0.30. I've hesitated a bit between one single script for foss.h.n and heptapod.host or two scripts, because there have been times in the past when there were more differences than the login sequence. With a Python script, we can manage such differences in the future anyway. The reason to bite the bullet and make a full Python script is the usual one: as long as there is at least an argument, chances that someone would call it with `--help` are high. A full pipeline would be a waste of resources with this, the only relevant part being only flake8 for the new script. [skip ci]
-
- Mar 14, 2022
-
-
Georges Racinet authored
Reusing the same wait object is probably a source of trouble
-
Georges Racinet authored
Waiting for the state to be 'closed' is not enough, the mergeability worker can still be running and impair the next mergeability assessments because of locks (exclusive lease). In a perfect world this shouldn't be a problem. In this reality, this is asking for trouble.
-
- Mar 13, 2022
-
-
Georges Racinet authored
Many more mergeability workers get spawned than could be expected, and the actual checking is pretty slow.
-
Georges Racinet authored
This was missing, and allows to pass `timeout_factor` when needed.
-
Georges Racinet authored
This is for the wait on mergeability
-
Georges Racinet authored
This is mutualized with the existing case of feature flags, by having the methods doing the change return the appropriate wait time in seconds. Without this, the expiration factor can be a problem in CI (usually not in development setups because it is changed only on a fresh instance). See also the comment about the Application Settings API calls not being consistent in terms of format and how we had to resort to perform the update unconditionaly.
-
Georges Racinet authored
The logic to update `vcs_types` only if needed is not that useful, since we have other reasons to change Application Settings. By contrast, having a single call to the update API will be useful in changes to come.
-
Georges Racinet authored
Clearly the setting name had been updated since then
-
- Mar 12, 2022
-
-
Georges Racinet authored
Because the rendering of the namespaces selector is now made in JavaScript, it has become asynchronous and we have to wait for it.
-
Georges Racinet authored
In GitLab 14.8, the cache for the whole API branches call is no longer behind a feature flag, and is not configurable. This is mitigated by the Heptapod specific `api_cache_expiration_factor`, brought in the same stack of changes as the move to GitLab 14.8 Also, there is a new feature flag `api_caching_branch`, which seems to apply for commit heads if the whole response is not generated from cache. We set it to `false`, but expect that our expiration factor will also effectively disable it when the feature is not optional any more.
-
- Mar 13, 2022
-
-
Georges Racinet authored
-
- Mar 12, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
This was simply missing, and should make this test more reliable.
-
Georges Racinet authored
Using the `MergeRequest` class. Also the assertion on GET was really not necessary (probably remnant of times when it wasn't streamlined).
-
Georges Racinet authored
Using the `MergeRequest` class again
-
Georges Racinet authored
Using the `MergeRequest` class and changeset extracts. Also underlying why `check_merged=False` even though not so sure about the asynchronicity of the status.
-
Georges Racinet authored
Using the `MergeRequest` class and `LocalRepo.changeset_extracts`
-
Georges Racinet authored
This is necessary for the example given in the docstring: `desc|firstline` (needed e.g. for MR merge changesets, whose description always has several lines)
-
- Mar 11, 2022
-
-
Georges Racinet authored
At the time it was introduced, project deletion didn't work well in Heptapod: it was removing the Git repository only, and before the appropriate behaviour was stabilized, it happened that the hg part would fail. Also, we didn't have project name randomization, so that a lingering repo would break all subsequent tests. Finally, Project deletion in GitLab was then synchronous. Nowadays, this is not the case any more, we don't need to insist that much on deletion, quite the contrary: this deletion occurs before the worker responsible for actual deletion spins up, and this results in massive exception log littering. Closes #22
-
- Feb 21, 2022
-
-
Georges Racinet authored
We take the webdriver road, because just checking the value of `updated_at` through the API would be pretty much a weaker version of RSpec tests. Another way to put it is that this would fail if `updated_at` wasn't backing the display. There are actually two timestamps (`created_at` is there as well)
-
- Feb 20, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
Also introducing parametrization, to prepare for the upcoming webdriver variant (should not be in Heptapod 0.29.0 though)
-
Georges Racinet authored
This leverages the API call introduced by heptapod!347. The `wait_assert` variant should be the most commonly used in concrete tests, with the caveat explained in docstring in case of re-reruns.
-
- Feb 26, 2022
-
-
Georges Racinet authored
-
- Feb 16, 2022
-
-
Georges Racinet authored
The idea is to put the most significant information near the beginning of the name. For instance, all jobs rely on Docker. (initially triggered by fully-native not being meaningful anymore now that there is no HGitaly1 mode)
-
Georges Racinet authored
Converted the `docker-inside` job into a pure template. The namings don't make much sense right now, but will soon.
-
- Feb 17, 2022
-
-
Georges Racinet authored
-
- Feb 12, 2022
-
-
Georges Racinet authored
The point of this test is to reproduce heptapod#524, and further test that actual Mercurial remote validation works. A first version of this, without the waiting times introduced in `webdriver_import_url` did not reproduce the issue, and this was masking very real problems. This one does the job. Also, in order to avoid duplicating the test based on the REST API, we change `Project.api_import_url` to take a `User` instance intead of a user name. This goes in the same direction as the various refactorings introduced in these tests in the past year or so.
-
Georges Racinet authored
The validation occurs only when the URL field loses focus (blur event), hence the TAB we send. Additionally, we must wait enough so that the validation round trip to the Rails app (iself calling the remote) can succeed, or fail. If we submit the form faster than any human could, we actually skip the validation. Same goes with the VCS Type field: changing it is supposed to trigger (re)validation. If we don't wait, we don't really test that.
-
- Feb 10, 2022
-
-
Georges Racinet authored
This will be the workhorse for webdriver-based import tests. For this, we hacked a few controls and entry points in the existing `webdriver_new_project_submit()`, until it worked. Later refactoring to make it more natural is an option. Validation is done in Git tests, as we know that the Mercurial import is currently broken (heptapod#595). The passing Git test will be an interesting non-regression test in any case.
-
Georges Racinet authored
We will need it also for webdriver-based import tests.
-
- Feb 15, 2022
-
-
Georges Racinet authored
Same as what we were previously doing with `hgitaly1` vs `full`: since Heptapod 0.29 will expose the actual value in the Projects API, we can assert it.
-
- Feb 14, 2022
-
-
Georges Racinet authored
It is a hard error to attempt to set the feature flag.
-
- Feb 16, 2022
-
-
Georges Racinet authored
-
- Feb 14, 2022
-
-
Georges Racinet authored
The namespace is now a hidden input, filled by JavaScript, of course.
-
Georges Racinet authored
As usual, leveraging the `MergeRequest` class and `assert_mr_commit_link`
-
- Feb 13, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
In this case the switch to the User class was already started and now looks to be complete.
-
Georges Racinet authored
Similar to what was previously done with ff 'required' and semi-linear, the pull could have been too fast after acceptation, but this time there wasn't any wait_assert on the server-side branches after merge. Also seen while switching to MergeRequest etc.
-