Example #1
0
def create_dataset_structure(dbuuid, auth, aristotleurl, verbose):
    """
    Returns the metadata schema for the given dbuuid
    """
    datasetResponse = utils.request_get(
        auth=auth,
        payload={
            'type': 'aristotle_dse:distribution',
            'dq': 'dataset__uuid:'+dbuuid
            },
        url=aristotleurl)
    if datasetResponse.status_code != 200:
        raise ValueError('Invalid uuid.')
    dataset = {}
    for dist in datasetResponse.json()["results"]:
        dist_data = utils.request_get(
            auth=auth,
            uuid=dist['uuid'],
            url=aristotleurl
        )

        dist_slots_name = ''
        for value in dist_data.json()['slots']:
            if value['name'] == 'distribution':
                dist_slots_name = value['value']
        dataset[dist_slots_name] = {'uuid': dist['uuid'], 'tables': {}}
        for data_elements in dist_data.json()['fields']['data_elements']:
            logical_path = data_elements['logical_path']
            dataset[dist_slots_name]['tables'][logical_path] = (
                data_elements["data_element"]
            )
    return dataset
    def execute_saved_req_check(self, result_data):
        runner = CliRunner()
        aristotleurl = 'http://0.0.0.0:8080'
        result = runner.invoke(execute_saved_req, [
            '--auth', self.auth, '--file', './tests/data_result.json',
            '--aristotleurl', aristotleurl
        ], '--verbose', False)
        datasetResponse = utils.request_get(auth=self.auth,
                                            payload={
                                                'type':
                                                'aristotle_dse:distribution',
                                                'dq':
                                                'dataset__uuid:' +
                                                self.dataset_id
                                            },
                                            url=aristotleurl)
        # Collect all data from server
        dataset = {}
        for dist in datasetResponse.json()["results"]:
            dist_data = utils.request_get(auth=self.auth,
                                          uuid=dist['uuid'],
                                          url=aristotleurl)
            dataset[dist['name']] = {
                'slots': dist_data.json()['slots'],
                'columns': {}
            }
            for data_elements in dist_data.json()['fields']['data_elements']:
                data_element_data = utils.request_get(
                    auth=self.auth,
                    uuid=data_elements["data_element"],
                    url=aristotleurl)
                value_domain_data = utils.request_get(
                    auth=self.auth,
                    uuid=data_element_data.json()['fields']['valueDomain'],
                    url=aristotleurl)
                dataset[dist['name']]['columns'][
                    data_element_data.json()['fields']
                    ['name']] = value_domain_data.json()['fields']['name']
        # Match server data and json data
        for dist_json in result_data:
            distribution_name = dist_json['fields']['name']
            self.assertTrue(distribution_name in dataset)
            for slot in dist_json['slots']:
                slot['value'] = str(slot['value'])
            self.assertEqual(dist_json['slots'],
                             dataset[distribution_name]['slots'])
            for data_element_json in dist_json['fields']['data_elements']:

                data_element_name = data_element_json['data_element'][
                    'fields']['name']
                self.assertTrue(
                    data_element_name in dataset[distribution_name]['columns'])
                self.assertEqual(
                    data_element_json['data_element']['fields']['valueDomain']
                    ['fields']['name'],
                    dataset[distribution_name]['columns'][data_element_name])
        result = runner.invoke(execute_saved_req, [
            '--auth', self.auth, '--file', './tests/data_result.json',
            '--aristotleurl', aristotleurl, '--dbuuid', self.dataset_id
        ], '--verbose', False)
Example #3
0
    def test_request_get_no_result_case(self):
        responses.add(
            responses.GET,
            'http://127.0.0.1:8080/api/v3/metadata/123',
            json={'count': 0,'results':[]},
            status=200
            )

        result = utils.request_get(
            "testAuth",
            payload={},
            uuid = '123'
            )
        self.assertEqual({'count': 0,'results':[]},result.json())
Example #4
0
    def test_request_get_result_case(self):
        responses.add(
            responses.GET,
            'http://127.0.0.1:8080/api/v3/metadata/123',
            json={
                'count': 2, 'results':[{'uuid':'result1'},{'uuid':'result2'}]
                },
            status=200)

        result = utils.request_get(
            "qweqw",
            payload={},
            uuid = '123'
            )
        self.assertEqual({
            'count': 2, 'results':[{'uuid':'result1'},{'uuid':'result2'}]
            },result.json())
Example #5
0
def get_value_domain(value_domain_payload, auth, aristotleurl, verbose):
    """
    Get value domain id. Either from existing or by creating new
    """
    valueDomainResponse = utils.request_get(
        auth=auth,
        payload={
            'name__icontains': value_domain_payload['fields']['name'],
            'type': 'aristotle_mdr:valuedomain'
        },
        url=aristotleurl)
    if valueDomainResponse.json()['count'] > 0:
        value_domain_id = valueDomainResponse.json()['results'][0]['uuid']
    else:
        value_domain_id = False
    if not value_domain_id:
        value_domain_id = utils.request_post(
            auth=auth,
            payload=value_domain_payload,
            url=aristotleurl,
            verbose=verbose
            )
    return value_domain_id
 def test_request_get_no_result_case(self):
     result = utils.request_get("testAuth",
                                payload={},
                                uuid='',
                                url='http://0.0.0.0:8080')
     self.assertEqual({'detail': 'Invalid token.'}, result.json())