3 # ARVADOS_API_TOKEN=abc ARVADOS_API_HOST=arvados.local python -m unittest discover
10 class KeepTestCase(unittest.TestCase):
13 super(KeepTestCase, cls).setUpClass()
15 del os.environ['KEEP_LOCAL_STORE']
20 run_test_server.run_keep()
21 arvados.keep.global_client_object = None
22 arvados.config._settings = None
23 run_test_server.authorize_with("admin")
26 def tearDownClass(cls):
27 super(KeepTestCase, cls).tearDownClass()
28 run_test_server.stop()
29 run_test_server.stop_keep()
31 def test_KeepBasicRWTest(self):
32 foo_locator = arvados.Keep.put('foo')
33 self.assertEqual(foo_locator,
34 'acbd18db4cc2f85cedef654fccc4a4d8+3',
35 'wrong md5 hash from Keep.put("foo"): ' + foo_locator)
36 self.assertEqual(arvados.Keep.get(foo_locator),
38 'wrong content from Keep.get(md5("foo"))')
40 def test_KeepBinaryRWTest(self):
41 blob_str = '\xff\xfe\xf7\x00\x01\x02'
42 blob_locator = arvados.Keep.put(blob_str)
43 self.assertEqual(blob_locator,
44 '7fc7c53b45e53926ba52821140fef396+6',
45 ('wrong locator from Keep.put(<binarydata>):' +
47 self.assertEqual(arvados.Keep.get(blob_locator),
49 'wrong content from Keep.get(md5(<binarydata>))')
51 def test_KeepLongBinaryRWTest(self):
52 blob_str = '\xff\xfe\xfd\xfc\x00\x01\x02\x03'
54 blob_str = blob_str + blob_str
55 blob_locator = arvados.Keep.put(blob_str)
56 self.assertEqual(blob_locator,
57 '84d90fc0d8175dd5dcfab04b999bc956+67108864',
58 ('wrong locator from Keep.put(<binarydata>): ' +
60 self.assertEqual(arvados.Keep.get(blob_locator),
62 'wrong content from Keep.get(md5(<binarydata>))')
64 def test_KeepSingleCopyRWTest(self):
65 blob_str = '\xff\xfe\xfd\xfc\x00\x01\x02\x03'
66 blob_locator = arvados.Keep.put(blob_str, copies=1)
67 self.assertEqual(blob_locator,
68 'c902006bc98a3eb4a3663b65ab4a6fab+8',
69 ('wrong locator from Keep.put(<binarydata>): ' +
71 self.assertEqual(arvados.Keep.get(blob_locator),
73 'wrong content from Keep.get(md5(<binarydata>))')
76 class KeepProxyTestCase(unittest.TestCase):
79 super(KeepProxyTestCase, cls).setUpClass()
81 del os.environ['KEEP_LOCAL_STORE']
85 run_test_server.run_keep()
86 arvados.keep.global_client_object = None
87 arvados.config._settings = None
88 run_test_server.run_keep_proxy("admin")
91 def tearDownClass(cls):
92 super(KeepProxyTestCase, cls).tearDownClass()
93 run_test_server.stop()
94 run_test_server.stop_keep()
95 run_test_server.stop_keep_proxy()
96 os.environ["ARVADOS_KEEP_PROXY"] = ""
97 os.environ["ARVADOS_EXTERNAL_CLIENT"] = ""
99 def test_KeepProxyTest1(self):
100 # Will use ARVADOS_KEEP_PROXY environment variable that is set by
103 baz_locator = arvados.Keep.put('baz')
104 self.assertEqual(baz_locator,
105 '73feffa4b7f6bb68e44cf984c85f6e88+3',
106 'wrong md5 hash from Keep.put("baz"): ' + baz_locator)
107 self.assertEqual(arvados.Keep.get(baz_locator),
109 'wrong content from Keep.get(md5("baz"))')
111 self.assertEqual(True, arvados.Keep.global_client_object().using_proxy)
113 def test_KeepProxyTest2(self):
114 os.environ["ARVADOS_KEEP_PROXY"] = ""
115 os.environ["ARVADOS_EXTERNAL_CLIENT"] = "true"
116 arvados.config._settings = None
118 # Will send X-External-Client to server and get back the proxy from
119 # keep_services/accessible
121 baz_locator = arvados.Keep.put('baz2')
122 self.assertEqual(baz_locator,
123 '91f372a266fe2bf2823cb8ec7fda31ce+4',
124 'wrong md5 hash from Keep.put("baz2"): ' + baz_locator)
125 self.assertEqual(arvados.Keep.get(baz_locator),
127 'wrong content from Keep.get(md5("baz2"))')
129 self.assertEqual(True, arvados.Keep.global_client_object().using_proxy)