예제 #1
0
    def test_mcm(self):
        mcm = F.search_client_mcm()

        clusters = mcm.list_clusters()['clusters']
        self.assertEqual(len(clusters), 2)

        cluster_name = clusters[0]['clusterName']

        date = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")

        if 'TRAVIS' in os.environ:
            instance = os.environ['TRAVIS_JOB_NUMBER']
        else:
            instance = 'unknown'

        python_version = platform.python_version().replace('.', '')[:2]

        python_version += os.environ.get('TEST_TYPE', '')

        def user_id(number):
            return 'python{}-{}-{}-{}'.format(python_version, date, instance,
                                              number)

        mcm.assign_user_id(user_id(0), cluster_name)

        mcm.assign_user_ids([user_id(1), user_id(2)], cluster_name)

        def get_user_id(number):
            while True:
                try:
                    return mcm.get_user_id(user_id(number))
                except RequestException as exception:
                    if exception.status_code != 404:
                        raise exception

        for number in range(3):
            self.assertEqual(
                get_user_id(number), {
                    'userID': user_id(number),
                    'clusterName': cluster_name,
                    'nbRecords': 0,
                    'dataSize': 0,
                })

        for number in range(3):
            users_ids = [
                user['userID']
                for user in mcm.search_user_ids(user_id(number))['hits']
            ]  # noqa: E501

            self.assertIn(user_id(number), users_ids)

        users = mcm.list_user_ids()
        self.assertIsInstance(users, dict)
        self.assertIsInstance(users['userIDs'], list)
        self.assertTrue(len(users['userIDs']) > 0)

        users = mcm.get_top_user_ids()
        self.assertIsInstance(users, dict)
        self.assertIsInstance(users['topUsers'], dict)
        self.assertTrue(len(users['topUsers']) > 0)

        result = None

        def remove_user_id(number):
            while True:
                try:
                    return mcm.remove_user_id(user_id(number))
                except RequestException as exception:
                    if exception.status_code != 400:
                        raise exception

        for number in range(3):
            remove_user_id(number)

        def assert_remove(number):
            while True:
                try:
                    mcm.get_user_id(user_id(number))
                except RequestException as exception:
                    if exception.status_code == 404:
                        return

        for number in range(3):
            assert_remove(number)

        has_pending_mappings = mcm.has_pending_mappings(
            {'retrieveMappings': True})
        self.assertIsNotNone(has_pending_mappings)
        self.assertIsInstance(has_pending_mappings['pending'], bool)
        self.assertTrue('clusters' in has_pending_mappings)
        self.assertIsInstance(has_pending_mappings['clusters'], dict)

        has_pending_mappings = mcm.has_pending_mappings(
            {'retrieveMappings': False})
        self.assertIsInstance(has_pending_mappings['pending'], bool)
        self.assertFalse('clusters' in has_pending_mappings)

        has_pending_mappings = mcm.has_pending_mappings()
        self.assertIsInstance(has_pending_mappings['pending'], bool)
        self.assertFalse('clusters' in has_pending_mappings)
예제 #2
0
    def test_mcm(self):
        mcm = F.search_client_mcm()

        clusters = mcm.list_clusters()["clusters"]
        self.assertEqual(len(clusters), 2)

        cluster_name = clusters[0]["clusterName"]

        date = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")

        if "TRAVIS" in os.environ:
            instance = os.environ["TRAVIS_JOB_NUMBER"]
        else:
            instance = "unknown"

        python_version = platform.python_version().replace(".", "")[:2]

        python_version += os.environ.get("TEST_TYPE", "")

        def user_id(number):
            return "python{}-{}-{}-{}".format(python_version, date, instance, number)

        mcm.assign_user_id(user_id(0), cluster_name)

        mcm.assign_user_ids([user_id(1), user_id(2)], cluster_name)

        def get_user_id(number):
            while True:
                try:
                    return mcm.get_user_id(user_id(number))
                except RequestException as exception:
                    if exception.status_code != 404:
                        raise exception

        for number in range(3):
            self.assertEqual(
                get_user_id(number),
                {
                    "userID": user_id(number),
                    "clusterName": cluster_name,
                    "nbRecords": 0,
                    "dataSize": 0,
                },
            )

        for number in range(3):
            users_ids = [
                user["userID"] for user in mcm.search_user_ids(user_id(number))["hits"]
            ]  # noqa: E501

            self.assertIn(user_id(number), users_ids)

        users = mcm.list_user_ids()
        self.assertIsInstance(users, dict)
        self.assertIsInstance(users["userIDs"], list)
        self.assertTrue(len(users["userIDs"]) > 0)

        users = mcm.get_top_user_ids()
        self.assertIsInstance(users, dict)
        self.assertIsInstance(users["topUsers"], dict)
        self.assertTrue(len(users["topUsers"]) > 0)

        result = None

        def remove_user_id(number):
            while True:
                try:
                    return mcm.remove_user_id(user_id(number))
                except RequestException as exception:
                    if exception.status_code != 400:
                        raise exception

        for number in range(3):
            remove_user_id(number)

        def assert_remove(number):
            while True:
                try:
                    mcm.get_user_id(user_id(number))
                except RequestException as exception:
                    if exception.status_code == 404:
                        return

        for number in range(3):
            assert_remove(number)

        has_pending_mappings = mcm.has_pending_mappings({"retrieveMappings": True})
        self.assertIsNotNone(has_pending_mappings)
        self.assertIsInstance(has_pending_mappings["pending"], bool)
        self.assertTrue("clusters" in has_pending_mappings)
        self.assertIsInstance(has_pending_mappings["clusters"], dict)

        has_pending_mappings = mcm.has_pending_mappings({"retrieveMappings": False})
        self.assertIsInstance(has_pending_mappings["pending"], bool)
        self.assertFalse("clusters" in has_pending_mappings)

        has_pending_mappings = mcm.has_pending_mappings()
        self.assertIsInstance(has_pending_mappings["pending"], bool)
        self.assertFalse("clusters" in has_pending_mappings)
        mcm.close()