status-desktop/test/ui-pytest/README.md

154 lines
4.3 KiB
Markdown

# Status desktop ui-tests
# Setup:
Skip any of the steps, if sure that you have the correct version of the required tool.
## All Platforms
### 1. Install Qt 5.15
https://doc.qt.io/qt-6/get-and-install-qt.html
### 2. Setup Squish License Server
https://hackmd.io/@status-desktop/HkbWpk2e5
### 3. Install PyCharm
Download and install:
https://www.jetbrains.com/pycharm/download/other.html
Please, select any build depending on OS, but NOT an Apple Silicon (dmg)
How to: https://www.jetbrains.com/help/pycharm/installation-guide.html
## Windows
### 4. Install Squish
https://status-misc.ams3.digitaloceanspaces.com/squish/squish-7.1-20230301-1424-qt515x-win64-msvc142.exe
### 5. Install Python
Download and install for all users: https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe
### 6. Install Requirements
```
YOUR_PYTHON_PATH/pip3.exe install -r ./requirements.txt
```
### 7. Setup Environment Variables
Add in system environment variables:
```
SQUISH_DIR=PATH_TO_THE_SQUISH_ROOT_FOLDER
PYTHONPATH=%SQUISH_DIR%/lib;%SQUISH_DIR%/lib/python;%PYTHONPATH%
```
RESTART PC
### 8. Verify environment variables
```
echo %SQUISH_DIR%
echo %PYTHONPATH%
```
### 9. Setup Python for Squish
Download 'PythonChanger.py' in %SQUISH_DIR%:
https://kb.froglogic.com/squish/howto/changing-python-installation-used-squish-binary-packages/PythonChanger.py
```
YOUR_PYTHON_PATH/python3.10 SQUISH_DIR/PythonChanger.py --revert
YOUR_PYTHON_PATH/python3.10 SQUISH_DIR/PythonChanger.py
```
- Replace "YOUR PYTHON PATH" on to Python3.10 file location path
- Replace "SQUISH DIR" on to the Squish root folder path
### 10 Test:
Executing tests located in 'test_self.py' file
```
pytest ./tests/test_self.py
```
Executing test 'test_import_squish' from 'test_self.py' file
```
pytest ./tests/test_self.py::test_import_squish
```
Executing all tests with 'import_squish' in test name
```
pytest -k import_squish
```
Executing all tests with tag 'self'
```
pytest -m self
```
## Linux
### 4. Install Squish
https://status-misc.ams3.digitaloceanspaces.com/squish/squish-7.1-20230222-1555-qt515x-linux64.run
### 5. Install Python
```bash
sudo apt-get install software-properties-common
```
```bash
sudo add-apt-repository ppa:deadsnakes/ppa
```
```bash
sudo apt-get update
```
```bash
sudo apt-get install python3.10
```
```bash
sudo apt install python3-pip
```
### 6. Install Requirements
```bash
sudo pip3 install -r ./requirements.txt
```
### 7. Setup Environment Variables
```bash
gedit ~/.profile
```
```
export SQUISH_DIR=PATH_TO_THE_SQUISH_ROOT_FOLDER
export PYTHONPATH=$SQUISH_DIR/lib:$SQUISH_DIR/lib/python:$PYTHONPATH
export LD_LIBRARY_PATH=$SQUISH_DIR/lib:$SQUISH_DIR/python3/lib:$LD_LIBRARY_PATH
```
RESTART PC
## Mac
### 4. Install Squish
https://status-misc.ams3.digitaloceanspaces.com/squish/squish-7.1-20230328-1608-qt515x-macaarch64.dmg
### 5. Install Python
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
```bash
brew update --auto-update
brew install wget
brew install python@3.10
```
### 6. Install Requirements
```bash
sudo pip3 install -r ./requirements.txt
```
### 7. Setup Environment Variables
```bash
touch ~/.zprofile
open ~/.zprofile
```
```
export SQUISH_DIR=PATH_TO_THE_SQUISH_ROOT_FOLDER
export PYTHONPATH=$SQUISH_DIR/lib:$SQUISH_DIR/lib/python:$PYTHONPATH
export LD_LIBRARY_PATH=$SQUISH_DIR/lib:$LD_LIBRARY_PATH
```
RESTART PC
## Linux or MAC:
### 8. Verify environment variables
```bash
echo $USERNAME
echo $PYTHONPATH
echo $LD_LIBRARY_PATH
```
### 9. Setup Python for Squish
https://kb.froglogic.com/squish/howto/changing-python-installation-used-squish-binary-packages/
```bash
brew install wget
wget -O $SQUISH_DIR/PythonChanger.py https://kb.froglogic.com/squish/howto/changing-python-installation-used-squish-binary-packages/PythonChanger.py
python3.10 $SQUISH_DIR/PythonChanger.py --revert
python3.10 $SQUISH_DIR/PythonChanger.py
```
### 10 Test:
```bash
echo "Executing tests located in 'test_self.py' file"
pytest ./tests/test_self.py
echo "Executing test 'test_import_squish' from 'test_self.py' file"
pytest ./tests/test_self.py::test_import_squish
echo "Executing all tests with 'import_squish' in test name"
pytest -k import_squish
echo "Executing all tests with tag 'self'"
pytest -m self
```
For more info, read: https://docs.pytest.org/en/latest/getting-started.html