Example #1
0
 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")
Example #2
0
    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)
Example #3
0
 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")
Example #4
0
    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)
Example #5
0
 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)
Example #6
0
 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)
Example #7
0
    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)
Example #8
0
    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)
Example #9
0
 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)
Example #10
0
    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)
Example #11
0
 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")
Example #12
0
    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")
Example #13
0
 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")
Example #14
0
    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")
Example #15
0
 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")
Example #16
0
 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")
Example #17
0
 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)
Example #18
0
    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)
Example #19
0
    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)
Example #20
0
    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
Example #21
0
    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")
Example #22
0
    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)
Example #23
0
 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)
Example #24
0
    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)
Example #25
0
    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)
Example #26
0
    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)
Example #27
0
    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))
Example #28
0
    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))
Example #29
0
 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)
Example #30
0
 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)
Example #31
0
 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)
Example #32
0
 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()})
Example #33
0
 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)
Example #34
0
 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)
Example #35
0
 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()})
Example #36
0
 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)
Example #37
0
 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)