X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/43424cf94b198085e9cfa1a139e9a492b2e1dced..3facf89bf048487ee718fe15d012b489f2d407b7:/sdk/python/tests/test_arv_put.py diff --git a/sdk/python/tests/test_arv_put.py b/sdk/python/tests/test_arv_put.py index 42ab242351..a8c4a853cf 100644 --- a/sdk/python/tests/test_arv_put.py +++ b/sdk/python/tests/test_arv_put.py @@ -852,27 +852,8 @@ class ArvadosPutTest(run_test_server.TestCaseWithServers, class ArvPutIntegrationTest(run_test_server.TestCaseWithServers, ArvadosBaseTestCase): - def _getKeepServerConfig(): - for config_file, mandatory in [ - ['application.yml', False], ['application.default.yml', True]]: - path = os.path.join(run_test_server.SERVICES_SRC_DIR, - "api", "config", config_file) - if not mandatory and not os.path.exists(path): - continue - with open(path) as f: - rails_config = yaml.safe_load(f.read()) - for config_section in ['test', 'common']: - try: - key = rails_config[config_section]["blob_signing_key"] - except (KeyError, TypeError): - pass - else: - return {'blob_signing_key': key, - 'enforce_permissions': True} - return {'blog_signing_key': None, 'enforce_permissions': False} - MAIN_SERVER = {} - KEEP_SERVER = _getKeepServerConfig() + KEEP_SERVER = {'blob_signing': True} PROJECT_UUID = run_test_server.fixture('groups')['aproject']['uuid'] @classmethod @@ -1185,7 +1166,7 @@ class ArvPutIntegrationTest(run_test_server.TestCaseWithServers, self.assertNotEqual(None, col['uuid']) c = arv_put.api_client.collections().get(uuid=col['uuid']).execute() self.assertEqual( - ciso8601.parse_datetime(trash_at).replace(tzinfo=None)+datetime.timedelta(hours=3), + ciso8601.parse_datetime(trash_at).replace(tzinfo=None) + datetime.timedelta(hours=3), ciso8601.parse_datetime(c['trash_at']).replace(tzinfo=None)) def test_put_collection_with_timezone_naive_expiring_datetime(self): @@ -1198,18 +1179,43 @@ class ArvPutIntegrationTest(run_test_server.TestCaseWithServers, ['--no-progress', '--trash-at', trash_at, tmpdir]) self.assertNotEqual(None, col['uuid']) c = arv_put.api_client.collections().get(uuid=col['uuid']).execute() + if time.daylight: + offset = datetime.timedelta(seconds=time.altzone) + else: + offset = datetime.timedelta(seconds=time.timezone) self.assertEqual( - ciso8601.parse_datetime(trash_at) - datetime.timedelta(hours=-time.timezone/3600), + ciso8601.parse_datetime(trash_at) + offset, ciso8601.parse_datetime(c['trash_at']).replace(tzinfo=None)) - def test_put_collection_with_invalid_absolute_expiring_datetime(self): + def test_put_collection_with_expiring_date_only(self): tmpdir = self.make_tmpdir() + trash_at = '2140-01-01' + end_of_day = datetime.timedelta(hours=23, minutes=59, seconds=59) with open(os.path.join(tmpdir, 'file1'), 'w') as f: f.write('Relaxing in basins at the end of inlets terminates the endless tests from the box') - with self.assertRaises(AssertionError): - self.run_and_find_collection( - "", - ['--no-progress', '--trash-at', 'tomorrow at noon', tmpdir]) + col = self.run_and_find_collection( + "", + ['--no-progress', '--trash-at', trash_at, tmpdir]) + self.assertNotEqual(None, col['uuid']) + c = arv_put.api_client.collections().get(uuid=col['uuid']).execute() + if time.daylight: + offset = datetime.timedelta(seconds=time.altzone) + else: + offset = datetime.timedelta(seconds=time.timezone) + self.assertEqual( + ciso8601.parse_datetime(trash_at) + end_of_day + offset, + ciso8601.parse_datetime(c['trash_at']).replace(tzinfo=None)) + + def test_put_collection_with_invalid_absolute_expiring_datetimes(self): + cases = ['2100', '210010','2100-10', '2100-Oct'] + tmpdir = self.make_tmpdir() + with open(os.path.join(tmpdir, 'file1'), 'w') as f: + f.write('Relaxing in basins at the end of inlets terminates the endless tests from the box') + for test_datetime in cases: + with self.assertRaises(AssertionError): + self.run_and_find_collection( + "", + ['--no-progress', '--trash-at', test_datetime, tmpdir]) def test_put_collection_with_relative_expiring_datetime(self): expire_after = 7 @@ -1228,7 +1234,7 @@ class ArvPutIntegrationTest(run_test_server.TestCaseWithServers, self.assertTrue(dt_after > trash_at) def test_put_collection_with_invalid_relative_expiring_datetime(self): - expire_after = 0 # Should be >= 1 + expire_after = 0 # Must be >= 1 tmpdir = self.make_tmpdir() with open(os.path.join(tmpdir, 'file1'), 'w') as f: f.write('Relaxing in basins at the end of inlets terminates the endless tests from the box')