36f2bb79a9
* fix(members): fix member count not updating correctly on join Fixes #16672 The issue was that the requests to join were not handled in time for when the community update came in, so when we udpated the section, we got both the normal member and the pending member still and they clashed and the pending one came on top, meaning that the joined member was not counted. On a restart it would fix itself. To fix it, I reordered the parsing of communities and requests, so that the request is updated first, ie deleted because it is now accepted. I also fixed the function that handles request to that the state gets updated at all times. Before, it would only get updated if it was not accepted, pending or waiting for address. Finally, there was a weird scenario where as a TM, I saw myself as pending even if I was joined, so I fixed it by removing duplicates. * chore(@e2e): remove xfail mark from pin messages test --------- Co-authored-by: Anastasiya Semenkevich <anastasija.ig@gmail.com> |
||
---|---|---|
.. | ||
configs | ||
constants | ||
driver | ||
ext | ||
fixtures | ||
gui | ||
helpers | ||
scripts | ||
tests | ||
.gitignore | ||
README.md | ||
conftest.py | ||
img.png | ||
img_1.png | ||
pytest.ini | ||
requirements.txt |
README.md
This repository manages UI tests for desktop application
How to set up your environment
- MacOS: https://www.notion.so/Mac-arch-x64-and-Intel-50ea48dae1d4481b882afdbfad38e95a
- Linux: https://www.notion.so/Linux-21f7abd2bb684a0fb10057848760a889
- Windows: https://www.notion.so/Windows-fbccd2b09b784b32ba4174233d83878d
NOTE: when MacOS and Linux are proven to be working, Windows guide could be outdated (no one yet set up Windows)
Which build to use
-
you can use your local dev build but sometimes tests hag there. To use it, just place a path to the executable to AUT_PATH in your _local.py config, for example
AUT_PATH = "/Users/anastasiya/status-desktop/bin/nim_status_client"
-
normally, please use CI build. Grab recent one from Jenkins job https://ci.status.im/job/status-desktop/job/nightly/
2.1 Linux and Windows could be taken from nightly job
2.2 Mac requires entitlements for Squish which we don't add by default, so please go here https://ci.status.im/job/status-desktop/job/systems/job/macos/ and select architecture you need (arm or intel), click Build with parameters and select Squish entitlements. Select a branch if u like (master is default)
Pytest marks used
You can run tests by mark, just use it like this in command line:
python3 -m pytest -m critical
or directly in pycharm terminal:
pytest -m critical
You can obtain the list of all marks we have by running this pytest --markers
critical
, mark used to select the most important checks we do for PRs in desktop repository (the same for our repo PRs)xfail
, used to link tests to existing tickets in desktop, so if test fails it will be marked as expected to fail in report with a reference to the ticket. At the same time, if such test is passing, it will be shown as XPASS (unexpectedly passing) in report, which will indicate the initial bug is goneskip
, used to just skip tests for various reasons, normally with a ticket linkedflaky
, used to mark the tests that are normally passing but sometimes fail. If such test passes, then if will be shown as passed in report normally. If the test fails, then the total run wont be failed, but the corresponding test will be marked asxfail
in the report. It is done for a few tests that are not super stable yet, but passes most of the time. This mark should be used with caution and in case of real need only.timeout(timeout=180, method="thread")
, to catch excessively long test durations like deadlocked or hanging tests. This is done bypytest-timeout
plugin