1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 00:03:28 +01:00

tests run improvements: update from python setup.py test -> tox (#754)

* tests cleanup:
- move test requirements to test_requirements.txt to share between setup.py and tox.ini
- README: update to recommend using 'tox --current-env' for running tests locally
- replaces #741

* test tweaks:
- don't require i18n to import locmanager, instead set flag on load (to avoid breaking tox / pytest)
- don't add werkzeug to test requirements
This commit is contained in:
Ilya Kreymer 2022-08-31 16:04:55 -07:00 committed by GitHub
parent f0340c6898
commit 2ccd8eb2c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 42 additions and 39 deletions

View File

@ -55,8 +55,10 @@ The 2.x release included a major overhaul of pywb and introduces many new featur
Please see the `full documentation <https://pywb.readthedocs.org>`_ for more detailed info on all these features. Please see the `full documentation <https://pywb.readthedocs.org>`_ for more detailed info on all these features.
Installation Installation for Deployment
------------ ---------------------------
To install pywb for usage, you can use:
```shell ```shell
pip install pywb pip install pywb
@ -64,16 +66,25 @@ pip install pywb
Note: depending on your Python installation, you may have to use `pip3` instead of `pip`. Note: depending on your Python installation, you may have to use `pip3` instead of `pip`.
To install, test and build docs locally you can:
* Install with ``python setup.py install`` Installation from local copy
----------------------------
* Run tests with ``python setup.py test`` ```shell
git clone https://github.com/webrecorder/pywb
```
* Run Wayback with ``wayback`` (see docs for info on how to setup collections) To install from a locally cloned copy, install with ``pip install -e .`` or ``python setup.py install``.
* Build docs locally with: ``cd docs; make html``. (The docs will be built in ``./_build/html/index.html``) To run tests, we recommend installing ``pip install tox tox-current-env`` and then running ``tox --current-env`` to test in your current Python environment.
To Build docs locally, run: ``cd docs; make html``. (The docs will be built in ``./_build/html/index.html``)
Running
-------
After installation, you can run ``pywb`` or ``wayback``.
Consult the local or `online docs <https://pywb.readthedocs.org>`_ for latest usage and configuration details. Consult the local or `online docs <https://pywb.readthedocs.org>`_ for latest usage and configuration details.

View File

@ -2,10 +2,14 @@ import os
import os.path import os.path
import shutil import shutil
from babel.messages.frontend import CommandLineInterface try:
from babel.messages.frontend import CommandLineInterface
from translate.convert.po2csv import main as po2csv from translate.convert.po2csv import main as po2csv
from translate.convert.csv2po import main as csv2po from translate.convert.csv2po import main as csv2po
loc_avail = True
except:
loc_avail = False
ROOT_DIR = 'i18n' ROOT_DIR = 'i18n'

View File

@ -448,12 +448,7 @@ Create manage file based web archive collections
acl.set_defaults(func=do_acl) acl.set_defaults(func=do_acl)
# LOC # LOC
loc_avail = False from pywb.manager.locmanager import LocManager, loc_avail
try:
from pywb.manager.locmanager import LocManager
loc_avail = True
except:
pass
def do_loc(r): def do_loc(r):
if not loc_avail: if not loc_avail:

View File

@ -113,17 +113,7 @@ setup(
"translate_toolkit" "translate_toolkit"
], ],
}, },
tests_require=[ tests_require=load_requirements("test_requirements.txt"),
'pytest',
'WebTest',
'pytest-cov',
'mock',
'urllib3',
'werkzeug',
'httpbin==0.5.0',
'ujson',
'lxml'
],
cmdclass={'test': PyTest}, cmdclass={'test': PyTest},
test_suite='', test_suite='',
entry_points=""" entry_points="""

9
test_requirements.txt Normal file
View File

@ -0,0 +1,9 @@
pytest
WebTest
pytest-cov
mock
urllib3
httpbin==0.5.0
flask<2.0
ujson
lxml

View File

@ -1,4 +1,5 @@
from .base_config_test import BaseConfigTest from .base_config_test import BaseConfigTest
import pytest
# ============================================================================ # ============================================================================
@ -6,6 +7,8 @@ class TestLocales(BaseConfigTest):
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
super(TestLocales, cls).setup_class('config_test_loc.yaml') super(TestLocales, cls).setup_class('config_test_loc.yaml')
pytest.importorskip('babel')
pytest.importorskip('translate_toolkit')
def test_locale_en_home(self): def test_locale_en_home(self):
res = self.testapp.get('/en/') res = self.testapp.get('/en/')

15
tox.ini
View File

@ -4,7 +4,7 @@ testpaths =
tests tests
[tox] [tox]
envlist = py36, py37, py38, py39 envlist = py36, py37, py38, py39, py310
[gh-actions] [gh-actions]
python = python =
@ -12,20 +12,11 @@ python =
3.7: py37 3.7: py37
3.8: py38 3.8: py38
3.9: py39 3.9: py39
3.10: py39
[testenv] [testenv]
deps = deps =
pytest -rtest_requirements.txt
pytest-cov
coverage
WebTest
fakeredis<1.0
mock
urllib3
werkzeug
httpbin==0.5.0
ujson
lxml
-rrequirements.txt -rrequirements.txt
-rextra_requirements.txt -rextra_requirements.txt
commands = commands =