def test_put_metadata_existing_item(self): self.route_tester \ .metadata_item() \ .route_params(bucket_name="test", path="test", item="tag") \ .expect(200, meta_utils.get_meta()["tag"]) \ .put(data=meta_utils.get_meta()["tag"], headers=self.auth) self.assert_metadata_matches("/test/artifact/test/_meta")
def test_tilde_sort(self): sort = [{ "field": "version", "sort_type": SortType.ASC, "flag_list": [SortFlag.VERSION] }] data = [ utils.get_meta("a", "/a", "1.19"), utils.get_meta("blah", "/blah", "1.19"), utils.get_meta("thing", "/thing", "1.2"), utils.get_meta("other", "/this/that/other", "1.1"), utils.get_meta("zzzz", "/zzzz", "1.19") ] results = self.sorter.sort(data, sort) expected = [ utils.get_meta("other", "/this/that/other", "1.1"), utils.get_meta("thing", "/thing", "1.2"), utils.get_meta("a", "/a", "1.19"), utils.get_meta("blah", "/blah", "1.19"), utils.get_meta("zzzz", "/zzzz", "1.19") ] self.asserts.json_equals(expected, results)
def test_tilde_sort(self): sort = [ { "field": "version", "sort_type": SortType.ASC, "flag_list": [ SortFlag.VERSION ] } ] data = [ utils.get_meta("a", "/a", "1.19"), utils.get_meta("blah", "/blah", "1.19"), utils.get_meta("thing", "/thing", "1.2"), utils.get_meta("other", "/this/that/other", "1.1"), utils.get_meta("zzzz", "/zzzz", "1.19") ] results = self.sorter.sort(data, sort) expected = [ utils.get_meta("other", "/this/that/other", "1.1"), utils.get_meta("thing", "/thing", "1.2"), utils.get_meta("a", "/a", "1.19"), utils.get_meta("blah", "/blah", "1.19"), utils.get_meta("zzzz", "/zzzz", "1.19") ] self.asserts.json_equals(expected, results)
def setUp(self): super(UpdateManagerTest, self).setUp() self.test_wrapper = SearchTestWrapper(self.search_container) self.update_manager = self.search_container.update_manager data = [ utils.get_meta("test_key"), utils.get_meta("delete"), utils.get_meta("old"), # In another bucket utils.get_meta("other", "/other/artifact/other") ] self.test_wrapper.setup_metadata(data)
def test_sorted_desc_and_asc(self): sort = [ { "field": "version", "sort_type": SortType.DESC, "flag_list": [ SortFlag.VERSION ] }, { "field": "artifactName", "sort_type": SortType.ASC }, ] data = [ utils.get_meta("zzzz", "/zzzz", "1.19"), utils.get_meta("a", "/a", "1.19"), utils.get_meta("thing", "/thing", "1.2"), utils.get_meta("blah", "/blah", "1.19"), ] results = self.sorter.sort(data, sort) expected = [ utils.get_meta("a", "/a", "1.19"), utils.get_meta("blah", "/blah", "1.19"), utils.get_meta("zzzz", "/zzzz", "1.19"), utils.get_meta("thing", "/thing", "1.2"), ] self.asserts.json_equals(expected, results)
def test_sorted_desc_and_asc(self): sort = [ { "field": "version", "sort_type": SortType.DESC, "flag_list": [SortFlag.VERSION] }, { "field": "artifactName", "sort_type": SortType.ASC }, ] data = [ utils.get_meta("zzzz", "/zzzz", "1.19"), utils.get_meta("a", "/a", "1.19"), utils.get_meta("thing", "/thing", "1.2"), utils.get_meta("blah", "/blah", "1.19"), ] results = self.sorter.sort(data, sort) expected = [ utils.get_meta("a", "/a", "1.19"), utils.get_meta("blah", "/blah", "1.19"), utils.get_meta("zzzz", "/zzzz", "1.19"), utils.get_meta("thing", "/thing", "1.2"), ] self.asserts.json_equals(expected, results)
def test_minor_version_search(self): results = self.manager.search({ "search": [{ "field": "version", "search_type": SearchType.VERSION, "value": "1.19" }] }) expected = [ utils.get_meta("a", "/a", "1.19"), utils.get_meta("blah", "/blah", "1.19"), utils.get_meta("zzzz", "/zzzz", "1.19"), ] self.asserts.json_equals(expected, results)
def test_dumb_tilde_search(self): results = self.manager.search({ "search": [{ "field": "artifactName", "search_type": SearchType.VERSION, "value": "test" }] }) expected = [ utils.get_meta(), utils.get_meta("thing", "/thing", "1.2"), utils.get_meta("zzzz", "/zzzz", "1.19"), ] self.asserts.json_equals(expected, results)
def test_put_metadata_immutable(self): self.route_tester \ .metadata() \ .route_params(bucket_name="test", path="test") \ .expect(200, meta_utils.get_meta()) \ .put(data=meta_utils.send_meta_changed(), headers=self.auth) self.assert_metadata_matches("/test/artifact/test/_meta")
def test_put_metadata_default_immutable_ignore_extra_properties(self): metadata = { "version": { "value": "1" }, "tag": { "value": "test", "name": "FAKENAME" }, "otherThing": { "value": "test", "somRandomThing": "iHaveAComplexCuzIGetIgnored" } } expect_metadata = meta_utils.get_meta(name="nest-test", path="/test/artifact/dir/dir2/dir3/nest-test") expect_metadata["otherThing"] = { "name": "otherThing", "value": "test", "immutable": False } self.route_tester \ .metadata() \ .route_params(bucket_name="test", path="dir/dir2/dir3/nest-test") \ .expect(200, expect_metadata) \ .put(data=metadata, headers=self.auth) self.assert_metadata_matches("/test/artifact/dir/dir2/dir3/nest-test/_meta")
def test_put_metadata(self): self.route_tester \ .metadata() \ .route_params(bucket_name="test", path="dir/dir2/dir3/nest-test") \ .expect(200, meta_utils.get_meta(name="nest-test", path="/test/artifact/dir/dir2/dir3/nest-test")) \ .put(data=meta_utils.send_meta(), headers=self.auth) self.assert_metadata_matches("/test/artifact/dir/dir2/dir3/nest-test/_meta")
def test_minor_version_search(self): results = self.manager.search({ "search": [ { "field": "version", "search_type": SearchType.VERSION, "value": "1.19" } ] }) expected = [ utils.get_meta("a", "/a", "1.19"), utils.get_meta("blah", "/blah", "1.19"), utils.get_meta("zzzz", "/zzzz", "1.19"), ] self.asserts.json_equals(expected, results)
def test_dumb_tilde_search(self): results = self.manager.search({ "search": [ { "field": "artifactName", "search_type": SearchType.VERSION, "value": "test" } ] }) expected = [ utils.get_meta(), utils.get_meta("thing", "/thing", "1.2"), utils.get_meta("zzzz", "/zzzz", "1.19"), ] self.asserts.json_equals(expected, results)
def test_listing(self): results = [] expected = ["dir/test"] for i in range(5): results.append(utils.get_meta(path="/test/artifact/dir/test")) parsed = self.portal._list_artifacts(results, 1) self.assertEqual(expected, parsed)
def add_stale_docs(self, path_list): resource_list = [] for path in path_list: resource_id = ResourceIdentity(path) data = meta_utils.get_meta(resource_id.artifact_name, resource_id.resource_path) self.search_wrapper.add_metadata(resource_id.search, data) resource_list.append(resource_id.search) self.search_wrapper.refresh_index() return resource_list
def test_put_metadata_omit_property_ensure_it_is_deleted(self): meta = meta_utils.send_meta() del meta["version"] expect_metadata = meta_utils.get_meta(name="nest-test", path="/test/artifact/dir/dir2/dir3/nest-test") del expect_metadata["version"] self.route_tester \ .metadata() \ .route_params(bucket_name="test", path="dir/dir2/dir3/nest-test") \ .expect(200, expect_metadata) \ .put(data=meta, headers=self.auth) self.assert_metadata_matches("/test/artifact/dir/dir2/dir3/nest-test/_meta")
def add_metadata(self, resource_path, version="1", metadata=None): """ Adds metadata to moto and elastic. """ resource_id = ResourceIdentity(resource_path) data = meta_utils.get_meta(resource_id.artifact_name, resource_id.resource_path, version) if metadata: data.update(metadata) key = Key(self.boto_connection.get_bucket(resource_id.bucket_name), resource_id.cloud_metadata) key.set_contents_from_string(yaml.dump(data)) self.search_wrapper.add_metadata(resource_id.search, data)
def test_equality_search(self): results = self.manager.search({ "search": [{ "field": "artifactName", "search_type": SearchType.MATCH, "value": "test" }, { "field": "artifactPath", "search_type": SearchType.WILDCARD, "value": "/test/artifact/tes?" }] }) expected = [utils.get_meta()] self.asserts.json_equals(expected, results)
def test_empty_metadata(self): """ This will ensure that things are initialized correctly. See pyshelf.metadata.initializer.Initializer For the "empty" artifact see tests.functional_test_base.FunctionalTestBase.setup_artifacts """ self.route_tester \ .metadata() \ .route_params(bucket_name="test", path="empty") \ .expect(200, meta_utils.get_meta(name="empty", path="/test/artifact/empty")) \ .put(data=meta_utils.send_meta(), headers=self.auth)
def test_more_then_ten_results(self): data = [] # In setup 6 documents have already been added. Making an even 20. for i in range(14): data.append(utils.get_meta("mutli-test{0}".format(str(i)))) self.test_wrapper.setup_metadata(data) results = self.manager.search({ "search": [{ "field": "artifactName", "search_type": SearchType.WILDCARD, "value": "*" }] }) self.assertEqual(20, len(results))
def test_equality_search(self): results = self.manager.search({ "search": [ { "field": "artifactName", "search_type": SearchType.MATCH, "value": "test" }, { "field": "artifactPath", "search_type": SearchType.WILDCARD, "value": "/test/artifact/tes?" } ] }) expected = [utils.get_meta()] self.asserts.json_equals(expected, results)
def setUp(self): super(ManagerTest, self).setUp() self.test_wrapper = SearchTestWrapper(self.search_container) self.manager = self.search_container.manager data = [ utils.get_meta(), utils.get_meta("other", "/this/that/other", "1.1"), utils.get_meta("thing", "/thing", "1.2"), utils.get_meta("blah", "/blah", "1.19"), utils.get_meta("a", "/a", "1.19"), utils.get_meta("zzzz", "/zzzz", "1.19"), ] self.test_wrapper.setup_metadata(data)
def test_metadata_update(self): self.update_manager.update("test_key", utils.get_meta()) metadata = self.update_manager._get_metadata("test_key") self.assertEqual(metadata.to_dict(), {"property_list": utils.get_meta_elastic()})
def test_get_hash(self): self.route_tester.metadata_item() \ .route_params(bucket_name="test", path="test", item="md5Hash") \ .expect(200, meta_utils.get_meta()["md5Hash"]) \ .get(headers=self.auth)
def test_get_metadata(self): self.route_tester \ .metadata() \ .route_params(bucket_name="test", path="test") \ .expect(200, meta_utils.get_meta()) \ .get(headers=self.auth)