Example #1
0
class UpdateManagerTest(UnitTestBase):
    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 tearDown(self):
        self.test_wrapper.teardown_metadata()

    def test_remove_all_old_docs(self):
        key_list = ["test_key"]
        deleted = self.update_manager.remove_unlisted_documents(key_list)
        self.assertEqual(3, deleted)
        self.assertEqual(None, self.test_wrapper.get_metadata("delete"))
        self.assertEqual(None, self.test_wrapper.get_metadata("old"))
        self.assertEqual(None, self.test_wrapper.get_metadata("other"))

    def test_remove_old_docs_per_bucket(self):
        key_list = ["test_key"]
        deleted = self.update_manager.remove_unlisted_documents_per_bucket(key_list, "test")
        self.assertEqual(2, deleted)
        self.assertEqual(None, self.test_wrapper.get_metadata("delete"))
        self.assertEqual(None, self.test_wrapper.get_metadata("old"))

    def test_remove_documents_wildcard(self):
        val_list = [
            "/test/artifact/*"
        ]
        deleted = self.update_manager.remove_unlisted_documents_wildcard("artifactPath", val_list)
        self.assertEqual(1, deleted)
        self.assertEqual(None, self.test_wrapper.get_metadata("other"))

    def test_bulk_update(self):
        data = {
            "test_key": {
                "name": {
                    "name": "name",
                    "value": "value",
                    "immutable": True
                }
            },
            "test": {
                "name": {
                    "name": "name",
                    "value": "value",
                    "immutable": False
                },
                "die": {
                    "name": "die",
                    "value": "no one reads this anyway",
                    "immutable": True
                }
            }
        }
        self.update_manager.bulk_update(data)
        first = self.update_manager._get_metadata("test_key").to_dict()
        second = self.update_manager._get_metadata("test").to_dict()
        expect_first = data["test_key"].values()
        expect_second = data["test"].values()
        self.assertEqual(first["property_list"], expect_first)
        self.assertEqual(second["property_list"], expect_second)

    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 #2
0
class ManagerTest(UnitTestBase):
    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 tearDown(self):
        self.test_wrapper.teardown_metadata()

    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_no_match(self):
        results = self.manager.search({
            "search": [
                {
                    "field": "artifactName",
                    "search_type": SearchType.MATCH,
                    "value": "neverrrrrrgonnamattttch"
                }
            ]
        })
        self.asserts.json_equals([], results)

    def test_tilde_search(self):
        results = self.manager.search({
            "search": [
                {
                    "field": "version",
                    "search_type": SearchType.VERSION,
                    "value": "1.1"
                }
            ]
        })
        expected = [
            utils.get_meta("a", "/a", "1.19"),
            utils.get_meta("blah", "/blah", "1.19"),
            utils.get_meta("other", "/this/that/other", "1.1"),
            utils.get_meta("thing", "/thing", "1.2"),
            utils.get_meta("zzzz", "/zzzz", "1.19"),
        ]
        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_select_fields(self):
        results = self.manager.search({
            "search": [
                {
                    "field": "artifactName",
                    "search_type": SearchType.MATCH,
                    "value": "test"
                }
            ]
        }, ["artifactPath"])
        expected = {
            "artifactPath": {
                "name": "artifactPath",
                "value": "/test/artifact/test",
                "immutable": True
            }
        }
        self.asserts.json_equals(expected, results[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)

    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_utils(self):
        connection = Connection("http://localhost:9200/index", "test", "test", "test")
        host = connection.transport.hosts[0]
        self.assertEqual("localhost", host["host"])
        self.assertEqual(9200, host["port"])
        self.assertEqual("index", connection.es_index)
        auth = connection.transport.get_connection().session.auth
        self.assertEqual("test", auth.aws_access_key)
        self.assertEqual("test", auth.aws_secret_access_key)
        self.assertEqual("localhost", auth.aws_host)
        self.assertEqual("test", auth.aws_region)
Example #3
0
class UpdateManagerTest(UnitTestBase):
    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 tearDown(self):
        self.test_wrapper.teardown_metadata()

    def test_remove_all_old_docs(self):
        key_list = ["test_key"]
        deleted = self.update_manager.remove_unlisted_documents(key_list)
        self.assertEqual(3, deleted)
        self.assertEqual(None, self.test_wrapper.get_metadata("delete"))
        self.assertEqual(None, self.test_wrapper.get_metadata("old"))
        self.assertEqual(None, self.test_wrapper.get_metadata("other"))

    def test_remove_old_docs_per_bucket(self):
        key_list = ["test_key"]
        deleted = self.update_manager.remove_unlisted_documents_per_bucket(
            key_list, "test")
        self.assertEqual(2, deleted)
        self.assertEqual(None, self.test_wrapper.get_metadata("delete"))
        self.assertEqual(None, self.test_wrapper.get_metadata("old"))

    def test_remove_documents_wildcard(self):
        val_list = ["/test/artifact/*"]
        deleted = self.update_manager.remove_unlisted_documents_wildcard(
            "artifactPath", val_list)
        self.assertEqual(1, deleted)
        self.assertEqual(None, self.test_wrapper.get_metadata("other"))

    def test_bulk_update(self):
        data = {
            "test_key": {
                "name": {
                    "name": "name",
                    "value": "value",
                    "immutable": True
                }
            },
            "test": {
                "name": {
                    "name": "name",
                    "value": "value",
                    "immutable": False
                },
                "die": {
                    "name": "die",
                    "value": "no one reads this anyway",
                    "immutable": True
                }
            }
        }
        self.update_manager.bulk_update(data)
        first = self.update_manager._get_metadata("test_key").to_dict()
        second = self.update_manager._get_metadata("test").to_dict()
        expect_first = data["test_key"].values()
        expect_second = data["test"].values()
        self.assertEqual(first["property_list"], expect_first)
        self.assertEqual(second["property_list"], expect_second)

    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 #4
0
class ManagerTest(UnitTestBase):
    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 tearDown(self):
        self.test_wrapper.teardown_metadata()

    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_no_match(self):
        results = self.manager.search({
            "search": [{
                "field": "artifactName",
                "search_type": SearchType.MATCH,
                "value": "neverrrrrrgonnamattttch"
            }]
        })
        self.asserts.json_equals([], results)

    def test_tilde_search(self):
        results = self.manager.search({
            "search": [{
                "field": "version",
                "search_type": SearchType.VERSION,
                "value": "1.1"
            }]
        })
        expected = [
            utils.get_meta("a", "/a", "1.19"),
            utils.get_meta("blah", "/blah", "1.19"),
            utils.get_meta("other", "/this/that/other", "1.1"),
            utils.get_meta("thing", "/thing", "1.2"),
            utils.get_meta("zzzz", "/zzzz", "1.19"),
        ]
        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_select_fields(self):
        results = self.manager.search(
            {
                "search": [{
                    "field": "artifactName",
                    "search_type": SearchType.MATCH,
                    "value": "test"
                }]
            }, ["artifactPath"])
        expected = {
            "artifactPath": {
                "name": "artifactPath",
                "value": "/test/artifact/test",
                "immutable": True
            }
        }
        self.asserts.json_equals(expected, results[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)

    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_utils(self):
        connection = Connection("http://localhost:9200/index", "test", "test",
                                "test")
        host = connection.transport.hosts[0]
        self.assertEqual("localhost", host["host"])
        self.assertEqual(9200, host["port"])
        self.assertEqual("index", connection.es_index)
        auth = connection.transport.get_connection().session.auth
        self.assertEqual("test", auth.aws_access_key)
        self.assertEqual("test", auth.aws_secret_access_key)
        self.assertEqual("localhost", auth.aws_host)
        self.assertEqual("test", auth.aws_region)