def test_get_target_path(self): tester = self test_bundle_spec = 'test_bundle_spec' test_uuid = 'test_uuid' test_data_hash = 'test_data_hash' test_location = 'test_location' test_path = 'test_path' target = (test_bundle_spec, test_path) class MockBundleModel(object): def get_bundle(self, uuid): tester.assertEqual(uuid, test_uuid) return self._bundle test_model = MockBundleModel() class MockBundleStore(object): def get_location(self, data_hash): tester.assertEqual(data_hash, test_data_hash) return test_location bundle_store = MockBundleStore() def get_spec_uuid(model, bundle_spec): self.assertEqual(model, test_model) self.assertEqual(bundle_spec, test_bundle_spec) return test_uuid with mock.patch('codalab.lib.canonicalize.get_spec_uuid', get_spec_uuid): test_model._bundle = type('MockBundle', (object,), { 'state': State.CREATED, 'data_hash': None, }) self.assertRaises(UsageError, lambda: canonicalize.get_target_path( bundle_store, test_model, target, )) test_model._bundle.data_hash = test_data_hash result = canonicalize.get_target_path(bundle_store, test_model, target) self.assertEqual(result, os.path.join(test_location, test_path)) # Test for invalid path (file not contained in bundle) self.assertRaises(UsageError, lambda: canonicalize.get_target_path( bundle_store, test_model, (test_bundle_spec, os.path.join("..", "..", test_path)), ))
def test_get_target_path(self): tester = self test_bundle_spec = 'test_bundle_spec' test_uuid = 'test_uuid' test_data_hash = 'test_data_hash' test_location = 'test_location' test_path = 'test_path' target = (test_uuid, test_path) class MockBundleModel(object): def get_bundle(self, uuid): tester.assertEqual(uuid, test_uuid) return self._bundle test_model = MockBundleModel() class MockBundleStore(object): def get_temp_location(self, identifier): return os.path.join('temp', identifier) def get_location(self, data_hash): tester.assertEqual(data_hash, test_data_hash) return test_location bundle_store = MockBundleStore() def get_bundle_uuid(model, bundle_spec): self.assertEqual(model, test_model) self.assertEqual(bundle_spec, test_bundle_spec) return test_uuid with mock.patch('codalab.lib.canonicalize.get_bundle_uuid', get_bundle_uuid): test_model._bundle = type('MockBundle', (object, ), { 'state': State.CREATED, 'data_hash': None, }) test_model._bundle.data_hash = test_data_hash result = canonicalize.get_target_path(bundle_store, test_model, target) self.assertEqual(result, os.path.join(test_location, test_path))
def test_get_target_path(self): tester = self test_bundle_spec = 'test_bundle_spec' test_uuid = 'test_uuid' test_data_hash = 'test_data_hash' test_location = 'test_location' test_path = 'test_path' target = (test_uuid, test_path) class MockBundleModel(object): def get_bundle(self, uuid): tester.assertEqual(uuid, test_uuid) return self._bundle test_model = MockBundleModel() class MockBundleStore(object): def get_temp_location(self, identifier): return os.path.join('temp', identifier) def get_location(self, data_hash): tester.assertEqual(data_hash, test_data_hash) return test_location bundle_store = MockBundleStore() def get_bundle_uuid(model, bundle_spec): self.assertEqual(model, test_model) self.assertEqual(bundle_spec, test_bundle_spec) return test_uuid with mock.patch('codalab.lib.canonicalize.get_bundle_uuid', get_bundle_uuid): test_model._bundle = type('MockBundle', (object,), { 'state': State.CREATED, 'data_hash': None, }) test_model._bundle.data_hash = test_data_hash result = canonicalize.get_target_path(bundle_store, test_model, target) self.assertEqual(result, os.path.join(test_location, test_path))
def get_target_path(self, target): return canonicalize.get_target_path(self.bundle_store, self.model, target)