# HG changeset patch # User Denis Laxalde # Date 1554477674 -7200 # Node ID 6b3523f81f424b839811e650ce275610c0467329 # Parent dc04947379b546f171f188fdd171b744d54a2ea2# Parent 83888a8d6083955813b7d5a41671366a5adfa826 Merge with 3.26 diff -r dc04947379b5 -r 6b3523f81f42 .hgtags --- a/.hgtags Thu Mar 28 11:15:28 2019 +0100 +++ b/.hgtags Fri Apr 05 17:21:14 2019 +0200 @@ -632,3 +632,4 @@ 8362503a92482e74a674c78fe009cf6ff346c817 debian/3.26.6-1 ee4ad63c91e5406e29f079f1f2d3774361798ac8 3.26.7 91f75319a726b523a09103540d3bc6872aaf2ae4 3.26.8 +4d6909de765ac036ddef00b5853213fcae56d525 3.26.9 diff -r dc04947379b5 -r 6b3523f81f42 cubicweb/pyramid/config.py --- a/cubicweb/pyramid/config.py Thu Mar 28 11:15:28 2019 +0100 +++ b/cubicweb/pyramid/config.py Fri Apr 05 17:21:14 2019 +0200 @@ -32,7 +32,9 @@ def get_random_secret_key(): """Return 50-character secret string""" chars = string.ascii_letters + string.digits - return "".join([random.choice(chars) for i in range(50)]) + secure_random = random.SystemRandom() + + return "".join([secure_random.choice(chars) for i in range(50)]) class CubicWebPyramidConfiguration(BaseWebConfiguration, ServerConfiguration): diff -r dc04947379b5 -r 6b3523f81f42 cubicweb/pyramid/test/test_config.py --- a/cubicweb/pyramid/test/test_config.py Thu Mar 28 11:15:28 2019 +0100 +++ b/cubicweb/pyramid/test/test_config.py Fri Apr 05 17:21:14 2019 +0200 @@ -31,7 +31,7 @@ class PyramidConfigTC(TestCase): def test_get_random_secret_key(self): - with patch('random.choice', return_value='0') as patched_choice: + with patch('random.SystemRandom.choice', return_value='0') as patched_choice: secret = config.get_random_secret_key() self.assertEqual(patched_choice.call_count, 50) self.assertEqual(secret, '0' * 50) @@ -43,7 +43,7 @@ os.environ['CW_INSTANCES_DIR'] = instancedir try: cfg = config.CubicWebPyramidConfiguration(appid) - with patch('random.choice', return_value='0') as patched_choice: + with patch('random.SystemRandom.choice', return_value='0') as patched_choice: cfg.write_development_ini(['foo', 'bar']) finally: os.environ.pop('CW_INSTANCES_DIR') diff -r dc04947379b5 -r 6b3523f81f42 cubicweb/rset.py --- a/cubicweb/rset.py Thu Mar 28 11:15:28 2019 +0100 +++ b/cubicweb/rset.py Fri Apr 05 17:21:14 2019 +0200 @@ -94,6 +94,11 @@ """Return possible actions on this result set. Should always be called with the same arguments so it may be computed only once. """ + if not kwargs: + raise ValueError("ResultSet.possible_actions is expecting to receive " + "keywords arguments to be able to compute access to " + "the cache only once but you provided none.") + key = tuple(sorted(kwargs.items())) if self._actions_cache is None: actions = self.req.vreg['actions'].poss_visible_objects( @@ -101,9 +106,12 @@ self._actions_cache = (key, actions) return actions else: - assert key == self._actions_cache[0], \ - 'unexpected new arguments for possible actions (%s vs %s)' % ( - key, self._actions_cache[0]) + if key != self._actions_cache[0]: + raise ValueError("ResultSet.possible_actions expects to always " + "receive the same arguments to compute the " + "cache once, but you've call it with the " + "arguments: '%s' that aren't the same as the " + "previously used combinaison '%s'" % (key, self._actions_cache[0])) return self._actions_cache[1] def __len__(self): diff -r dc04947379b5 -r 6b3523f81f42 cubicweb/test/unittest_rset.py --- a/cubicweb/test/unittest_rset.py Thu Mar 28 11:15:28 2019 +0100 +++ b/cubicweb/test/unittest_rset.py Fri Apr 05 17:21:14 2019 +0200 @@ -643,8 +643,8 @@ with self.admin_access.web_request() as req: rset = req.execute('Any D, COUNT(U) GROUPBY D WHERE U is CWUser, U creation_date D') rset.possible_actions(argument='Value') - self.assertRaises(AssertionError, rset.possible_actions, argument='OtherValue') - self.assertRaises(AssertionError, rset.possible_actions, other_argument='Value') + self.assertRaises(ValueError, rset.possible_actions, argument='OtherValue') + self.assertRaises(ValueError, rset.possible_actions, other_argument='Value') def test_count_users_by_date(self): with self.admin_access.web_request() as req: diff -r dc04947379b5 -r 6b3523f81f42 requirements/test-misc.txt --- a/requirements/test-misc.txt Thu Mar 28 11:15:28 2019 +0100 +++ b/requirements/test-misc.txt Fri Apr 05 17:21:14 2019 +0200 @@ -13,7 +13,7 @@ flake8 ## cubicweb/hooks/test -psycopg2 +psycopg2-binary ## cubicweb/pyramid/test pyramid >= 1.5.0 diff -r dc04947379b5 -r 6b3523f81f42 requirements/test-server.txt --- a/requirements/test-server.txt Thu Mar 28 11:15:28 2019 +0100 +++ b/requirements/test-server.txt Fri Apr 05 17:21:14 2019 +0200 @@ -1,3 +1,3 @@ mock -psycopg2 +psycopg2-binary ldap3 < 2