From 6909b6f970c3e4f87b7648322169dbcf1a3b17bf Mon Sep 17 00:00:00 2001 From: "josue.garcia" Date: Thu, 28 Nov 2019 12:26:59 +0100 Subject: [PATCH] [qalab] update tox+CIs --- .travis.yml | 18 ++------ CHANGELOG.md | 27 ++++++++++++ README.rst | 93 +++++++++++++++------------------------- appveyor.yml | 58 ++++++++++++------------- conftest.py | 0 pytest.ini | 12 ++---- qalab.pyproj | 84 ------------------------------------ qalab.sln | 40 ----------------- setup.cfg | 3 ++ sonar-project.properties | 26 ----------- tox.ini | 34 ++++++++------- 11 files changed, 118 insertions(+), 277 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 conftest.py delete mode 100644 qalab.pyproj delete mode 100644 qalab.sln delete mode 100644 sonar-project.properties diff --git a/.travis.yml b/.travis.yml index d2b9574..38d6091 100755 --- a/.travis.yml +++ b/.travis.yml @@ -4,13 +4,6 @@ env: - secure: Q3yIlvsQ2Ten33rNGcL5+5UglAWmri0ga6Z2FQKq4SXUMyKJhfQsP96TyTgDjWupgrtVag1q/cNecwyJHNQKW6p2HUg9FKeSk+v8qxXpgm58NGm4R1WJY6OaFaxX8vE6RXShzrT55jeEGCj+wPbpSotOsAArtodUqGKnqCQHS5AKaCsFkmthMped3lM1Rw+qR/ToQLrrrfoPN4V/c8g5j0x4II+6XSSLoNLlovN8MF8pJzQ2ZpHfaus7U147ErG5Xyjxt7RQXwyXCjOJbjZ5u8UOwLd5dGp37z081ZG/HpilDi/G1JEAz5vGo2cwVSxhCnJ9qCuqyzd2VNBlBpKEZwIlGp+CxBON2En9c3Vc3HzWTS6fofTOyJe04hZOND/k0r8eDWTSultIIkgmrdTr4iVkeoCw/GRvxbP33qFkUBexmhykhhcXGwDC0JUxU/XkFUdpaR5hIDfcbiduhBGNM/Z53rcktt0O/Ug8wXp+PmQ7MBrKYh4ZesytLa3CIfJkJr+hr9+L9YP7VooJDNbz4q78IucfYmqhuLS3f+JdfHbpYAcnt42ueYYZjibL3QoSprb61IWVFikt4Pt01uD1V//F5cysm8qVGzfg8L5KlZJcF/DUYqJnaazkasKztKR8pdMMcMSa3tAeOkH1jxGf9fUhXuHXD1D9KqokA4zqhYo= #GITHUB_TOKEN - secure: F0st01LnybnS75tBmlQSdM9Ydb38HUTuddRecUwRDfb3s6nbI+LPRgrFtdpDMh1PdSMUG3hiDhpCe1OQpRq9VPvCdYoGrd0PZi0wUYWrd8F8eOEV5UcX6NvL3uZxwDjIo6M3Bkkl4HVfhbSmLgtkdXhIg0K9LWMOLqamh5/OXY1ikPKzcd73V3JLIvVtoC2C+Hyq5wbXhkGGu4uOhKEtZCsHsFahjsLvgxjFR6SbDtLBpAt7Mi+pjwYyrR5w/57KuH4tPuYAnJARXpAlOGZNRM2+ntfvucnZIUIBmOgBu+ruWe0Q6ZJQEZsZ3PJmPmo+AbZbs85r5AwKMJk31fTzU3VJCfBcJZLe5Wdw6qoa3ZUiEKbjf7KSO8faTkm2HAmUx28Jiq+WrYyPUKnESKytgCu9CO/N1mCHAdBRjl7ee8qeOpyfneccy8LcSPgYfaX3D1atX5/1pflh8TfzFE5wCvqCg5P/xUKw556LNP1HI3NJtvnLQqLQ4dwCpeglWU33FYW80CTLugc86Tl6Kcq30IcEbuHwOYLsidezlsakqgjvprdRrStkNL4aZmtpFFitpR75o3wFM3CSWvLn+MYSulFhHSCZY9IOv4/9VczodgqNl3TYG04xJmEpZwZfnwKk+jKzyr6popGHfAHsVh6bATKkAaOQfVBKuzy7Mtd7bWA= -addons: - sonarqube: - branches: - - master - - devel - token: - secure: VtPxaodHoyiwC1P1RTlfb86qaEEg96/1CTvpDAR7dnT/EfzCR6OqSKbi+xRIYLyl+KLxTkmhvbwt83YseWXh5OCrq89USRA7tJBwubBj6TWf7B24xgsijusUtc/Xz/BbZFqM8wz8PnenpifHu4MNHwT6zXm5uYc3r2FK9BPJgjicNIHgj83m2r6TBJfK1n8mADOWBlxl/Y8m3kopPUzmb6GeM4cgykYp46KhgK/zviCUrVR1mTn2ilkqX3/KgG1FGUUSRzXgTaToqvzVSKE+qMq7Ai9N3arv8JcnMSpR9rl0ZCAC3shc2hCiB5WygpJmxya5v9YjDEb7RQQavUCEs/4LnDZbckufa4ImPHDyRACUBmg8Bsgu0XQKxEsl8RgDibSPz1Sd6HFAgr80OPUwBa562DJLv3qoYSB3/FmKaww/asxJC8sUhYZi2Xx3WrguZgn8jgQJfX51EnFNQrTEQdvfI5RE1s1vIfZXEx7yqCrcQj5nhM0CSLXG8MA7R1TpZCC/oGzl0dVhIr+O2kjfFtmjO9j3HxiTlMXSopMtMCRLQZoiu3ipCnIsyGROgeBbBg0Xq67qECD9k8hqrwlgnbjxlAgbGi3yMTb1nkh6AhCs59NwcUeGQoW/7k6UgA4p9rSHwEupbzmXKvn7brjca5Ih5wmlRne10qnFS+dLvMg= language: python matrix: include: @@ -31,7 +24,6 @@ matrix: python: 3.6 env: TOXENV=py36 - before_install: - git submodule foreach git checkout master - pip install tox @@ -41,15 +33,11 @@ install: before_script: - python setup.py install script: +- tox -e "flake8,$TOXENV" - python qalab/qaenv.py -sd selenium -m hub -p lin64 -s & - python qalab/qaenv.py -sd selenium -m node -p lin64 -s & - sleep 10 - nc -z -v -w5 localhost 11000 - nc -z -v -w5 localhost 11001 - -after_script: -- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then - sonar-scanner -X -Dsonar.login=${SONAR_GITHUB_TOKEN} -Dsonar.host.url=http://qalab.tk:82 ; - else - sonar-scanner -X -Dsonar.login=${SONAR_GITHUB_TOKEN} -Dsonar.host.url=http://qalab.tk:82 -Dsonar.github.repository=netzulo/qalab -Dsonar.github.pullRequest=${TRAVIS_PULL_REQUEST} -Dsonar.github.oauth=${GITHUB_TOKEN} -Dsonar.analysis.mode=preview ; - fi +after_success: +- tox -e docs \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..4536c25 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,27 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + + +## [Unreleased] - xxxx-xx-xx + +### Added +- This CHANGELOG + +### Changed +- CI's configuration files #untracked +- pytest configuration files #untracked +- tox configuration files #untracked +- Update readme to improve readability + +### Fixed + +### Removed +- sonarqube configuration files #untracked +- Visual Studio Professional configuration files #untracked + + +[Unreleased]: https://github.com/netzulo/qacode/compare/v0.1.6...HEAD +[0.1.6]: https://github.com/netzulo/qacode/compare/v0.1.5...v0.1.6 \ No newline at end of file diff --git a/README.rst b/README.rst index c7690ab..ec78adb 100644 --- a/README.rst +++ b/README.rst @@ -24,42 +24,6 @@ QA laboratory | | |qalab_build_master_win| | |qacode_build_master_win| | |qadmin_build_master_win| | |qadoc_build_master_win| | |qadoc_build_master_win| | +--------------+--------------------------+---------------------------+---------------------------+--------------------------+--------------------------+ -Documentation -------------- - -- QAlab qalab_api_ -- QAcode qacode_api_ -- QAtestlink qatestlink_api_ -- QAdoc qadoc_api_ -- QAdmin qadmin_api_ -- QAdrivers qadrivers_api_ - - -Code Metrics by sonarqube -------------------------- - -.. image:: http://qalab.tk:82/api/badges/gate?key=qalab - :alt: Quality Gate - :target: http://qalab.tk:82/api/badges/gate?key=qalab -.. image:: http://qalab.tk:82/api/badges/measure?key=qalab&metric=lines - :alt: Lines - :target: http://qalab.tk:82/api/badges/gate?key=qalab -.. image:: http://qalab.tk:82/api/badges/measure?key=qalab&metric=bugs - :alt: Bugs - :target: http://qalab.tk:82/api/badges/gate?key=qalab -.. image:: http://qalab.tk:82/api/badges/measure?key=qalab&metric=vulnerabilities - :alt: Vulnerabilities - :target: http://qalab.tk:82/api/badges/gate?key=qalab -.. image:: http://qalab.tk:82/api/badges/measure?key=qalab&metric=code_smells - :alt: Code Smells - :target: http://qalab.tk:82/api/badges/gate?key=qalab -.. image:: http://qalab.tk:82/api/badges/measure?key=qalab&metric=sqale_debt_ratio - :alt: Debt ratio - :target: http://qalab.tk:82/api/badges/gate?key=qalab -.. image:: http://qalab.tk:82/api/badges/measure?key=qalab&metric=comment_lines_density - :alt: Comments - :target: http://qalab.tk:82/api/badges/gate?key=qalab - How to install ? ---------------- @@ -68,21 +32,9 @@ How to install ? + 2. *Enter on repo directory* : ``cd qalab`` + 3. *Clone submodules* : ``git submodule update --init --recursive`` + 4. *Attach branches HEAD* : ``git submodule foreach git checkout master`` ++ 5. *Install qalab package*: from PIP ``pip install qalaboratory`` or from setup.py file ``python setup.py install`` -How to exec tests ? -------------------- - -+ 1. *Clone this repo* : ``git clone https://github.com/netzulo/qalab.git`` -+ 2. *Enter on repo directory* : ``cd qalab`` -+ 3. *Execute test with setup.py* : ``python setup.py test`` - - -PIP install -*********** - -``pip install qalaboratory`` - Command Usage ************* @@ -136,10 +88,6 @@ Appium + 3. Create configuration : ``python qalab/qaenv.py --server_driver appium --mode node --install`` + 4. Start Node : ``python qalab/qaenv.py --server_driver appium --mode node --start --platform win64`` - -TOX environments -**************** - +---------------------+--------------------------------+ | Env name | Env description | +=====================+================================+ @@ -160,6 +108,39 @@ TOX environments | appium-node | Start intalled appium node | +---------------------+--------------------------------+ +How to exec tests ? +------------------- + ++ Tests from setup.py file : ``python setup.py test`` + ++ Install from PIP file : ``pip install tox`` ++ Tests from tox : ``tox -l && tox -e TOX_ENV_NAME`` ( *see tox.ini file to get environment names* ) + + ++---------------------+--------------------------------+ +| TOX Env name | Env description | ++=====================+================================+ +| py27,py34,py35,py36 | Python supported versions | ++---------------------+--------------------------------+ +| flake8 | Exec linter in qalab/ tests/ | ++---------------------+--------------------------------+ +| coverage | Generate XML and HTML reports | ++---------------------+--------------------------------+ +| docs | Generate doc HTML in /docs | ++---------------------+--------------------------------+ +| selenium-hub | Start intalled selenium hub | ++---------------------+--------------------------------+ +| selenium-node | Start intalled selenium node | ++---------------------+--------------------------------+ +| selendroid-hub | Start intalled selendroid hub | ++---------------------+--------------------------------+ +| selendroid-node | Start intalled selendroid node | ++---------------------+--------------------------------+ +| appium-node | Start intalled appium node | ++---------------------+--------------------------------+ +| selenium-tests | Execute Hub+Node tests | ++---------------------+--------------------------------+ + QADrivers ********* @@ -201,9 +182,3 @@ QADrivers .. |qatestlink_build_master_win| image:: https://ci.appveyor.com/api/projects/status/kw4si7if8lw7m10n/branch/master?svg=true .. |qatestlink_build_devel_lin| image:: https://travis-ci.org/netzulo/qatestlink.svg?branch=devel .. |qatestlink_build_devel_win| image:: https://ci.appveyor.com/api/projects/status/kw4si7if8lw7m10n/branch/devel?svg=true -.. _qalab_api: http://qalab.tk/qalab/ -.. _qacode_api: http://qalab.tk/qacode/ -.. _qatestlink_api: http://qalab.tk/qatestlink/ -.. _qadoc_api: http://qalab.tk/qadoc/ -.. _qadmin_api: http://qalab.tk/qadmin/ -.. _qadrivers_api: http://qalab.tk/qadrivers/ diff --git a/appveyor.yml b/appveyor.yml index 959c887..a46ba2b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,16 @@ build: off +branches: + only: + - master + - devel environment: + global: + # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the + # /E:ON and /V:ON options are not enabled in the batch script intepreter + # See: http://stackoverflow.com/a/13751649/163740 + CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\appveyor\\run_with_env.cmd" + CLCACHE_NODIRECT: "true" + matrix: - JOB: "2.7 32-bit" TOXENV: "py27" @@ -12,33 +23,18 @@ environment: PYTHON_VERSION: "2.7.10" PYTHON_ARCH: "64" - - JOB: "3.4 32-bit" - TOXENV: "py34" - PYTHON: "C:\\Python34" - PYTHON_VERSION: "3.4" - PYTHON_ARCH: "32" - JOB: "3.4 64-bit" TOXENV: "py34" PYTHON: "C:\\Python34-x64" PYTHON_VERSION: "3.4" PYTHON_ARCH: "64" - - JOB: "3.5 32-bit" - TOXENV: "py35" - PYTHON: "C:\\Python35" - PYTHON_VERSION: "3.5.0" - PYTHON_ARCH: "32" - JOB: "3.5 64-bit" TOXENV: "py35" PYTHON: "C:\\Python35-x64" PYTHON_VERSION: "3.5.0" PYTHON_ARCH: "64" - - JOB: "3.6 32-bit" - TOXENV: "py36" - PYTHON: "C:\\Python36" - PYTHON_VERSION: "3.6.3" - PYTHON_ARCH: "32" - JOB: "3.6 64-bit" TOXENV: "py36" PYTHON: "C:\\Python36" @@ -46,20 +42,24 @@ environment: PYTHON_ARCH: "64" install: -# Prepend newly installed Python to the PATH of this build (this cannot be -# done from inside the powershell script as it would require to restart -# the parent CMD process). -- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" -# Check that we have the expected version and architecture for Python -- "python --version" -- "python -c \"import struct; print(struct.calcsize('P') * 8)\"" -# Upgrade to the latest version of pip to avoid it displaying warnings -# about it being out of date. -- "pip install --disable-pip-version-check --user --upgrade pip" -- "python -m pip install wheel" -- "python -m pip install --pre -U tox" -- "tox -e \"{%TOXENV%,selenium-hub,selenium-node,appium-node}\"" + # Prepend newly installed Python to the PATH of this build (this cannot be + # done from inside the powershell script as it would require to restart + # the parent CMD process). + - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" + # Check that we have the expected version and architecture for Python + - "python --version" + - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" + # Upgrade to the latest version of pip to avoid it displaying warnings + # about it being out of date. + - "python -m pip install wheel" + - "python -m pip install --upgrade pip" + - "python -m pip install --pre -U tox" + +test_script: + - "tox -e flake8,%TOXENV%" + +after_test: + - "python setup.py sdist" artifacts: - path: "dist\\*" - diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000..e69de29 diff --git a/pytest.ini b/pytest.ini index 4b10e3a..969109f 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,14 +1,10 @@ [pytest] -addopts = - --verbose - --junit-xml=tests/reports/report_xunit.xml - --html=tests/reports/report_html.html - --self-contained-html - --cov=qalab tests/ - --cov-report html:tests/reports/report_coverage_html/ - --cov-report xml:tests/reports/report_coverage.xml +addopts = --verbose testpaths = tests console_output_style = progress python_files = suite_*_*.py python_classes = Test* python_functions = test_*_* +filterwarnings = + error + ignore::UserWarning \ No newline at end of file diff --git a/qalab.pyproj b/qalab.pyproj deleted file mode 100644 index 40ff03d..0000000 --- a/qalab.pyproj +++ /dev/null @@ -1,84 +0,0 @@ - - - Debug - 2.0 - d888c1a4-d0a3-42e4-b8ee-ff2f9163bf94 - . - - - - - . - . - qalab - qalab - MSBuild|qalab|$(MSBuildProjectFullPath) - - - true - false - - - true - false - - - - - - - - Code - - - - - - - - - - - - - - - - - - - Code - - - - - Code - - - Code - - - Code - - - - - qalab - 3.6 - qalab (Python 3.6 (64-bit)) - Scripts\python.exe - Scripts\pythonw.exe - PYTHONPATH - X64 - - - - - - - - - - \ No newline at end of file diff --git a/qalab.sln b/qalab.sln deleted file mode 100644 index 3e0642b..0000000 --- a/qalab.sln +++ /dev/null @@ -1,40 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26430.15 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "qacode", "modules\qacode\qacode.pyproj", "{53450CA3-CDDC-4405-8FBD-A6924E1E1E09}" -EndProject -Project("{9092AA53-FB77-4645-B42D-1CCCA6BD08BD}") = "qadmin", "modules\qadmin\qadmin.njsproj", "{7BC79646-C72B-47B3-A857-5DFC6C1C9B6A}" -EndProject -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "qalab", "qalab.pyproj", "{D888C1A4-D0A3-42E4-B8EE-FF2F9163BF94}" -EndProject -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "qadrivers", "modules\qadrivers\qadrivers.pyproj", "{9C087281-A09D-431A-9EB6-3301D12FFDE1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "qadoc", "modules\qadoc\qadoc.csproj", "{16EDDAA0-CFEF-4553-B885-2AE16AD2DFC6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {53450CA3-CDDC-4405-8FBD-A6924E1E1E09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {53450CA3-CDDC-4405-8FBD-A6924E1E1E09}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7BC79646-C72B-47B3-A857-5DFC6C1C9B6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7BC79646-C72B-47B3-A857-5DFC6C1C9B6A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7BC79646-C72B-47B3-A857-5DFC6C1C9B6A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7BC79646-C72B-47B3-A857-5DFC6C1C9B6A}.Release|Any CPU.Build.0 = Release|Any CPU - {D888C1A4-D0A3-42E4-B8EE-FF2F9163BF94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D888C1A4-D0A3-42E4-B8EE-FF2F9163BF94}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9C087281-A09D-431A-9EB6-3301D12FFDE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9C087281-A09D-431A-9EB6-3301D12FFDE1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16EDDAA0-CFEF-4553-B885-2AE16AD2DFC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {16EDDAA0-CFEF-4553-B885-2AE16AD2DFC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16EDDAA0-CFEF-4553-B885-2AE16AD2DFC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16EDDAA0-CFEF-4553-B885-2AE16AD2DFC6}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/setup.cfg b/setup.cfg index 595999b..286b745 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,5 @@ [metadata] description-file=README.rst + +[aliases] +test=pytest \ No newline at end of file diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index 14e19d8..0000000 --- a/sonar-project.properties +++ /dev/null @@ -1,26 +0,0 @@ -# Required metadata -sonar.projectKey=qalab -sonar.projectName=qalab -sonar.projectDescription=Main Proyect for QA -sonar.projectVersion=1.7 -# Language -sonar.language=py -# Comma-separated paths to directories with sources (required) -sonar.sources=qalab -# Encoding of the source files -sonar.sourceEncoding=UTF-8 -# Smoke tests -sonar.python.pylint=/usr/local/bin/pylint -sonar.python.pylint_config=.pylintrc -sonar.python.pylint.reportPath=pylint-report.txt -# Unit tests -#sonar.python.xunit.reportPath=test-reports/*.xml -#sonar.python.coverage.reportPath=coverage.xml -# Integration tests -#sonar.python.coverage.itReportPath=it-coverage.xml - -# GITHUB -sonar.links.homepage=https://github.com/netzulo/qalab -sonar.links.ci=https://travis-ci.org/netzulo/qalab -sonar.links.scm=https://github.com/netzulo/qalab -sonar.links.issue=https://github.com/netzulo/qalab/issues diff --git a/tox.ini b/tox.ini index 916cc0d..0ccd329 100644 --- a/tox.ini +++ b/tox.ini @@ -1,15 +1,8 @@ [tox] envlist = - py27, - py34, - py35, - py36, - flake8, - docs, - selenium-hub, - selenium-node, - selendroid-hub, - selendroid-node, + py{27,34,35,36}, + flake8,coverage,docs, + {selenium, selendroid}-{hub,node}, appium-node, selenium-tests [testenv:py27] @@ -20,16 +13,13 @@ commands = python setup.py test commands = python setup.py test [testenv:py36] commands = python setup.py test -[testenv:docs] -skip_install = true -commands = sphinx-build -b html qalab docs -deps = - Sphinx + [testenv:flake8] skip_install = true max-complexity = 10 commands = flake8 --ignore=D400,D205,I201,N812,D401,D413,D208 qalab/ tests/ deps = + pydocstyle==3.0.0 flake8 flake8-docstrings>=0.2.7 flake8-import-order>=0.9 @@ -47,6 +37,19 @@ exclude = .eggs, .cache +[testenv:docs] +commands = + python setup.py sdist + check-manifest --ignore tox.ini,tests*,docs*,source-docs* + # twine check dist/* + sphinx-build -M html source-docs/source docs +deps = + check-manifest + twine + readme_renderer + Sphinx + sphinx_bootstrap_theme + # APP envs [testenv:selenium-hub] commands = python qalab/qaenv.py -sd selenium -m hub -i @@ -63,4 +66,3 @@ deps = wget [testenv:appium-node] commands = python qalab/qaenv.py -sd appium -m node -i deps = wget -