annotate scripts/validate-commits @ 7846:d68b77e4e4ab

tg2: move routing mapper initialization from RootController class definition time to instantiation time Things happened to work before, despite unfortunate code executation at import time. TurboGears 2.4 changed something, so actual serving works, but pytest fails with: collecting ... ... data/env/lib/python2.7/site-packages/_pytest/config/__init__.py:463: in _importconftest raise ConftestImportFailure(conftestpath, sys.exc_info()) E ConftestImportFailure: (local('.../kallithea/tests/conftest.py'), (<type 'exceptions.KeyError'>, KeyError('paths',), <traceback object at 0x7fb6679030e0>)) or more useful, if raising the real exception instead of obfuscating with ConftestImportFailure: ... kallithea/tests/conftest.py:15: in <module> from kallithea.controllers.root import RootController kallithea/controllers/root.py:29: in <module> class RootController(RoutedController, BaseController): kallithea/controllers/root.py:31: in RootController mapper = make_map(config) kallithea/config/routing.py:32: in make_map rmap = Mapper(directory=config['paths']['controllers'], data/env/lib/python2.7/site-packages/tg/configuration/tgconfig.py:28: in __getitem__ return self.config_proxy.current_conf()[key] E KeyError: 'paths' _importconftest <_pytest.config.PytestPluginManager object at 0x7f20c770a3d0> .../conftest.py In this example, in RootController, the global config object is at this time just: {'debug': False, 'package': None, 'i18n.lang': None, 'tg.strict_tmpl_context': True, 'tg.app_globals': None} Solved by moving the mapper initialization to __init__.
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 28 Aug 2019 12:07:37 +0200
parents d9e37f7fd35b
children 37ac2ac0a9ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7503
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
1 #!/usr/bin/env bash
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
2 # Validate the specified commits against test suite and other checks.
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
3
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
4 if [ -n "$VIRTUAL_ENV" ]; then
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
5 echo "Please run this script from outside a virtualenv."
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
6 exit 1
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
7 fi
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
8
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
9 if ! hg update --check -q .; then
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
10 echo "Working dir is not clean, please commit/revert changes first."
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
11 exit 1
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
12 fi
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
13
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
14 venv=$(mktemp -d kallithea-validatecommits-env-XXXXXX)
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
15 resultfile=$(mktemp kallithea-validatecommits-result-XXXXXX)
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
16 echo > "$resultfile"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
17
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
18 cleanup()
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
19 {
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
20 rm -rf /tmp/kallithea-test*
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
21 rm -rf "$venv"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
22 }
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
23 finish()
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
24 {
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
25 cleanup
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
26 # print (possibly intermediate) results
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
27 cat "$resultfile"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
28 rm "$resultfile"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
29 }
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
30 trap finish EXIT
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
31
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
32 for rev in $(hg log -r "$1" -T '{node}\n'); do
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
33 hg log -r "$rev"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
34 hg update "$rev"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
35
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
36 cleanup
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
37 virtualenv -p "$(command -v python2)" "$venv"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
38 source "$venv/bin/activate"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
39 pip install --upgrade pip setuptools
7841
d9e37f7fd35b docs: always use dev_requirements.txt together with main version constraints in setup.py
Mads Kiilerich <mads@kiilerich.com>
parents: 7503
diff changeset
40 pip install -e . -r dev_requirements.txt python-ldap python-pam
7503
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
41
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
42 # run-all-cleanup
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
43 scripts/run-all-cleanup
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
44 if ! hg update --check -q .; then
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
45 echo "run-all-cleanup did not give clean results!"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
46 result="NOK"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
47 hg diff
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
48 hg revert -a
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
49 else
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
50 result=" OK"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
51 fi
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
52 echo "$result: $rev (run-all-cleanup)" >> "$resultfile"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
53
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
54 # pytest
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
55 if py.test; then
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
56 result=" OK"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
57 else
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
58 result="NOK"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
59 fi
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
60 echo "$result: $rev (pytest)" >> "$resultfile"
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
61
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
62 deactivate
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
63 echo
69f70de15f26 scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff changeset
64 done