Validation of Heptapod 0.35.1
- May 15, 2023
-
-
Georges Racinet authored
-
- Mar 13, 2023
-
-
Georges Racinet authored
-
- Mar 10, 2023
-
-
Georges Racinet authored
Just a bit required to actually test the ongoing release
-
Georges Racinet authored
-
- Mar 08, 2023
-
-
Georges Racinet authored
-
- Mar 07, 2023
-
-
Georges Racinet authored
With the introduction of `api_post` and friends a while ago that all take the optional `user` argument, we really don't need to create a function on the fly as `test_create_file_publisher_permission` was doing to circumvent the fact that `api_file_create` worked with the Project owner before this changeset.
-
Georges Racinet authored
These are the cases where a fully instantiated `User` was already around, hence especially trivial to migrate to the new style.
-
Georges Racinet authored
This is a general trend of moving from user names to `User` instances. We checked before this that all callers were using the keyword-style argument passing, so it should be compatible right away.
-
Georges Racinet authored
It's possible that we have not spotted all cases yet, since it is some kind of short race.
-
Georges Racinet authored
The root cause is actually the project visibility, but we have something a bit more precise to check here, so let's simply do that rather than use the recent `Project.wait_assert_user_visible`.
-
Georges Racinet authored
Use case explained in docstring. Apparently, we didn't have trouble with increases of access level once the project is visible (let's hope it's about some short lived cache or something alike), otherwise we'd have to go to greater lengths to find the appropriate condition to wait on.
-
Georges Racinet authored
The expected `h1` is now below more intermediate elements. Also the value of the attribute that we use in XPath is now made of dashes instead of underscores.
-
Georges Racinet authored
The link does not carry an `href` attribute any more (joys of JavaScript-driven web sites are progressing). Did not remember that the link wasn't clickable (could have been an async problem), but now we have the right utils to wait until that works, and it carries us to the page, which is the only way to test the URL and avoid some false negatives.
-
Georges Racinet authored
-
Georges Racinet authored
It's actually simpler than unfolding a section.
-
- Mar 06, 2023
-
-
Georges Racinet authored
as mentioned in 22c0fa236862, this removal should not be a problem
-
- Feb 09, 2023
-
-
Georges Racinet authored
Probably due to application of an internal front lib, as in previous cases the clickable element for "Initialize project with a README" is now the label
-
- Dec 16, 2022
-
-
Georges Racinet authored
Passes in HDK context, expected not to pass with current 0.34-testing Docker image because it is meant to reproduce omnibus-heptapod#22
-
- Nov 28, 2022
-
-
Georges Racinet authored
This should behave exactly the same way as upstream GitLab, but we've had some doubts to lift.
-
Georges Racinet authored
This helper function appeared after the changed tests were written. Using it across the board reduces code duplication and helps with readability.
-
- Nov 24, 2022
-
-
Georges Racinet authored
In some cases, querying an element by text, and reading it does not coincide. The main source of discrepancies is that an element can have several text fragments. Example: ``` <a> Some <b /> text! </a> ``` At least on my laptop, the change fixes the tests relying on expansion of Runners settings
-
Georges Racinet authored
-
- Nov 22, 2022
-
-
Georges Racinet authored
-
- Nov 10, 2022
-
-
Georges Racinet authored
This is the cause of CI failures in pipeline 58137, downstream of the pipeline for heptapod!438.
-
- Oct 18, 2022
-
-
Georges Racinet authored
-
- Oct 17, 2022
-
-
Georges Racinet authored
Instead of a shaded, unclickable, "Merge" button, we now have this explicit message. Asserting the full message is a potential maintenance problem (no very clear id or attribute is present), yet is better than asserting that a button is not displayed (given that everything is async, we would have to wait enough for the assertion to be relevant).
-
- Oct 16, 2022
-
-
Georges Racinet authored
The pipeline for this topic's MR is already running against a Docker image close to 15.1 (heptapod!426). It turns out that the file HTML input that was in the way to find the file uploader is no more.
-
- Oct 15, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
-
- Oct 16, 2022
-
-
Georges Racinet authored
Brings in more uniformity with Project.
-
Georges Racinet authored
Our `api_retrieve()` was mostly useless (still called from the Heptapod class): we don't need to perform a subsequent request after a create or search call: all the necessary info is present in the returned data.
-
- Oct 15, 2022
-
-
Georges Racinet authored
Unfortunately, for the equality check in `test_group_project` to succeed, this requires us to pass owner_name (not part of the Grape entity).
-
Georges Racinet authored
Previously a Project method, but will actually also be useful at least for Groups
-
- Oct 14, 2022
-
-
Georges Racinet authored
`wait_could_click_element` is a bit clearer.
-
Georges Racinet authored
As we were hoping, the new `webdriver_expand_settings()` method was enough to fix it.
-
Georges Racinet authored
Not currently in use, but I tested the new version with a local modification to test_hg_access.py. - using the new `webdriver_expand()` method - adaptation: the checkbox input is no longer clickable (like other settings pages). Instead its label is the one to be clicked.
-
Georges Racinet authored
Previous selector wasn't working correctly any more. Python looping does. Done in a separate method with waits inspired by other similar methods, so that we can centralize all these section expanding cases in one place.
-
Georges Racinet authored
This is the natural companion of `wait_could_click_element()`, not the same API as `wait_element_visible()` and probably subtly different in its results. This one is convenient for a general `selector` callable, i.e. not necessarily based on `find_element()`.
-
- Oct 13, 2022
-
-
Georges Racinet authored
The change probably happened earlier but 7b39ca79b211 is the revision merged into Heptapod.
-
- Oct 01, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
when no precise image tag (hash) is given, hence not in pipelines triggered by Omnibus pipelines.
-
- Sep 30, 2022
-
-
Georges Racinet authored
Parallels the existing test in `test_projects.py` for Mercurial projects.
-
Georges Racinet authored
As of 61d5518ef3c3, one has to click on the radio buttons labels for Merge method instead of the input itself.
-
- Sep 27, 2022
-
-
Georges Racinet authored
This is the end of the line for `tests.utils`, see you in `heptapod_tests`
-
Georges Racinet authored
They are now replaced by imports from `heptapod_tests`, which fixes all the resulting deprecation warnings.
-
- Sep 23, 2022
-
-
Georges Racinet authored
-
- Sep 22, 2022
-
-
Georges Racinet authored
"by default" means unless a specific changeset id is passed (happens when triggered by Omnibus builds)
-
- Sep 20, 2022
-
-
Georges Racinet authored
The change in project.py shows that after all parentheses are still possible for `not` with the strict enforcement of E275 (whitespace around operator): they just have to enclose the operator itself
-
Georges Racinet authored
-
Georges Racinet authored
This was E275 (missing whitespace after keyword) Honestly, the way this rule is enforced is concerning in this case. Parentheses can be crucial to lift ambiguity in some cases. We'll see.
-
- Sep 15, 2022
-
-
Georges Racinet authored
The previous expression would match any button containing a span with text such as `Merge Requests`. That seems to appear between 14.10 and 15.0 (complicated by the fact that the `text()` method on the Selenium element doesn't seem to return all text fragments in the element).
-
- Jul 23, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
Finally settling onto 0.9.0 because it would need at least a doc (README) reorganization to be called 1.0
-
Georges Racinet authored
After all this is what the public will see on PyPI
-
Georges Racinet authored
This way, downstream tests don't have to duplicate them (even if simple).
-
Georges Racinet authored
Took the opportunity to give better naming, as this was about branches only. Only one import site, fixed directly
-
Georges Racinet authored
Only one import, not bothering with backwards compat and deprecation.
-
Georges Racinet authored
-
Georges Racinet authored
These modules are specific to the bundled tests, as their purpose is filtering of the tests to run. Moving them up so that they don't trigger a deprecation warning when imported (which is to be fair mostly for the modules that have been adopted into the heptapod_tests package). But also the `test_` prefix is enough to distinguish. With only a few remaining such utils in the `test` package, we can afford putting them at top level.
-
Georges Racinet authored
As much as possible, since we still have `needs` and `suitable` to take care of.
-
Georges Racinet authored
This time, with only 3 import sites, we don't bother with compat reexports
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
It doesn't make sense to force caller code not interested in SSH at all to pass `None`.
-
Georges Racinet authored
It could be useful for downstream tests packages that would also want to multithread.
-
Georges Racinet authored
Also gives evidence of more modules in the `utils` package that should be moved to `heptapod_tests`.
-
Georges Racinet authored
Existing tox environments have to be updated to get the new `PyYAML` dependency. Now the bundled tests take the `heptapod-tests.yml` configuration file into account. This is also dogfooding for that mechanism, but it could, e.g., help simplify or even avoid the `heptapod-tests-run` script in HDK workspaces.
-
Georges Racinet authored
This configuration file is intentionally distinct from `pytest.ini`. So for instance, people working on a project with functional tests against a Heptapod instance can set the URL of their Heptapod instance in `heptapod-tests.yml` and hg ignore that file. The special case of the boolean action options (`store_true`) led to some complications, because the only way to detect that it's not passed on the CLI is that the value is the other alternative.
-
- Jul 21, 2022
-
-
Georges Racinet authored
With this change, the `requirements.txt` file expresses the dependencies needed to import the `heptapod_tests` package. The other dependencies in `tox.ini` are additional dependencies of the tests shipping in this repository or how to run them (i.e., conftest.py). Requiring `tox ` was the previous state of that file, but that is almost useless. Typically tox would be provided by other means, such as distro packages, This is what happens in CI point tox to the (changed) requirements file instead?
-
Georges Racinet authored
-
- Jul 14, 2022
-
-
Georges Racinet authored
We don't want all functional tests written with heptapod-tests as a framework to enforce the same set of keys. This is still optional, because some tests may well not need SSH at all.
-
Georges Racinet authored
At this point, and except for the ssh keys directory, heptapod_tests should be usable from another project.
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
Many tests were still importing from the `project` module, hence using a previous old backwards compatibility.
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
- Jul 13, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
Taking the opportunity to give the module a more appropriate name.
-
- Jul 12, 2022
-
-
Georges Racinet authored
Fixing the import from `conftest.py` right away is mandatory because the monkey-patching it does has to be for the right module, not for the compatibility reexporting `tests.utils.hg`.
-
Georges Racinet authored
Better for our purposes that eventually tests.utils will entirely disappear.
-
Georges Racinet authored
Since we're about to expose the Project class in the importable `heptapod_tests` package, it doesn't make sense to use an unrelated constant there. Instead, the `load_tarball()` method expects the tarball path to be fully usable, and the tests make use of `DATA_DIR`. (also an opportunity to switch to `pathlib`)
-
Georges Racinet authored
The motivation is importability, as downstream code or users that installed a packaged version from PyPI would not appreciate an obscure path for persistent data like `instance.cache`. Actually, as the name suggests, `DEFAULT_RUN_DIR` is merely the default value for the `Heptapod` classes, so that downstream code (and later on our `conftest.py` can easily override it). On the other hand, `tests/data` is *immutable* data for the tests provided in the source tree, and there is no need to override.
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
Granted it is faily trivial, but - webdriver.title is obviously Selenium-specific - the implementation could become finer in the future
-
Georges Racinet authored
This new module now hosts `wait_assert` and time-related transversal utilities.
-
Georges Racinet authored
-
Georges Racinet authored
As more and more top-level objects appear, remembering them becomes harder. `./lint` is now the way to go
-
Georges Racinet authored
-
- Jul 11, 2022
-
-
Georges Racinet authored
This assumes that heptapod_api_import is available, so in practice that it's been installed in the tox virtualenv, so we'll need to find a way to provide it for CI. Maybe only for the "inside" jobs, with an additional pip install. Maybe in the long run we'll want to instead import from heptapod_test into the heptapod_api_import project. Meanwhile, this is good enough to support local development.
-
- Jul 08, 2022
-
-
Georges Racinet authored
Looks like it is slower than with Chrome. This matches my feeling (indeed it is slow in Firefox, and that is a shame).
-
Georges Racinet authored
Tested to work with a cargo installation of `geckodriver` on Fedora 35. Not exposed in the CLI yet.
-