示例#1
0
    def setUpClass(cls):

        check_spec_test_env()
        # import the results file
        results_file = os.path.join(_TEST_DIR, 'djornl', 'results.json')
        with open(results_file) as fh:
            cls.json_data = json.load(fh)

        cls.no_results = {'nodes': [], 'edges': []}
        cls.maxDiff = None

        # load the DB
        root_path = os.path.join(_TEST_DIR, 'djornl', 'test_data')
        with modified_environ(RES_ROOT_DATA_PATH=root_path):
            parser = DJORNL_Parser()
            node_name = parser.config('node_name')
            edge_name = parser.config('edge_name')

            edge_data = parser.load_edges()
            r = create_test_docs(node_name, edge_data['nodes'])
            print_db_update(r, node_name)
            r = create_test_docs(edge_name, edge_data['edges'])
            print_db_update(r, edge_name)

            node_metadata = parser.load_nodes()
            r = create_test_docs(node_name, node_metadata['nodes'], True)
            print_db_update(r, node_name)

            cluster_data = parser.load_clusters()
            r = create_test_docs(node_name, cluster_data['nodes'], True)
            print_db_update(r, node_name)
示例#2
0
def _create_delta_test_docs(coll_name, docs, edge=False):
    """Add in delta required fields."""
    if edge:
        for doc in docs:
            # Replicate the time-travel system by just setting 'from' and 'to' to the keys
            doc['from'] = doc['_from'].split('/')[1]
            doc['to'] = doc['_to'].split('/')[1]
    else:
        for doc in docs:
            doc['id'] = doc['_key']
    for doc in docs:
        doc['expired'] = 9007199254740991
        doc['created'] = 0
    create_test_docs(coll_name, docs)
 def test_valid(self):
     """Test a valid query."""
     docs_created = create_test_docs(
         'test_vertex',
         [
             {
                 'is_public': True,
                 '_key': 'a',
                 'ws_id': 10
             },  # public access
             {
                 'is_public': False,
                 '_key': 'b',
                 'ws_id': 1
             },  # private access
             {
                 'is_public': False,
                 '_key': 'c',
                 'ws_id': 99
             }  # no access
         ])
     self.assertEqual(
         docs_created.json(),
         {
             'created': 3,
             'details': [],
             'empty': 0,
             'error': False,
             'errors': 0,
             'ignored': 0,
             'updated': 0
         },
     )
     resp = requests.post(
         _QUERY_URL,
         headers={
             'Authorization': 'valid_token'
         }  # gives access to workspaces [1,2,3]
     ).json()
     self.assertEqual(resp['count'], 2)
     # 'c' is inaccessible
     self.assertEqual({r['_key'] for r in resp['results']}, {'a', 'b'})
 def test_no_auth(self):
     """Test with blank auth."""
     docs_created = create_test_docs(
         'test_vertex',
         [
             {
                 'is_public': True,
                 '_key': 'a',
                 'ws_id': 10
             },  # public access
             {
                 'is_public': False,
                 '_key': 'b',
                 'ws_id': 1
             },  # private access
             {
                 'is_public': False,
                 '_key': 'c',
                 'ws_id': 99
             }  # no access
         ])
     self.assertEqual(
         docs_created.json(),
         {
             'created': 3,
             'details': [],
             'empty': 0,
             'error': False,
             'errors': 0,
             'ignored': 0,
             'updated': 0
         },
     )
     resp = requests.post(_QUERY_URL).json()
     self.assertEqual(resp['count'], 1)
     # 'b' and 'c' are inaccessible
     self.assertEqual([r['_key'] for r in resp['results']], ['a'])
示例#5
0
    def setUpClass(cls):
        """Create test documents"""

        check_spec_test_env()

        taxon_docs = [
            {'_key': '1', 'scientific_name': 'Bacteria', 'rank': 'Domain', 'strain': False},
            {'_key': '2', 'scientific_name': 'Firmicutes', 'rank': 'Phylum', 'strain': False},
            {'_key': '3', 'scientific_name': 'Bacilli', 'rank': 'Class', 'strain': False},
            {'_key': '4', 'scientific_name': 'Proteobacteria', 'rank': 'Phylum', 'strain': False},
            {'_key': '5', 'scientific_name': 'Alphaproteobacteria', 'rank': 'Class', 'strain': False},
            {'_key': '6', 'scientific_name': 'Gammaproteobacteria', 'rank': 'Class', 'strain': False},
            {'_key': '7', 'scientific_name': 'Deltaproteobacteria', 'rank': 'Class', 'strain': False},
            {'_key': '8', 'scientific_name': 'Bacillus subtilis 168', 'rank': 'no rank', 'strain': True},
        ]
        child_docs = [
            {'_from': 'ncbi_taxon/2', '_to': 'ncbi_taxon/1', 'from': '2', 'to': '1', 'id': '2'},
            {'_from': 'ncbi_taxon/4', '_to': 'ncbi_taxon/1', 'from': '4', 'to': '1', 'id': '4'},
            {'_from': 'ncbi_taxon/3', '_to': 'ncbi_taxon/2', 'from': '3', 'to': '2', 'id': '3'},
            {'_from': 'ncbi_taxon/5', '_to': 'ncbi_taxon/4', 'from': '5', 'to': '4', 'id': '5'},
            {'_from': 'ncbi_taxon/6', '_to': 'ncbi_taxon/4', 'from': '6', 'to': '4', 'id': '6'},
            {'_from': 'ncbi_taxon/7', '_to': 'ncbi_taxon/4', 'from': '7', 'to': '4', 'id': '7'},
            # a few levels missing here
            {'_from': 'ncbi_taxon/8', '_to': 'ncbi_taxon/3', 'from': '8', 'to': '3', 'id': '8'},
        ]
        obj_ver_docs = [
            _construct_ws_obj_ver(1, 1, 1, is_public=True),
            _construct_ws_obj_ver(1, 1, 2, is_public=True),
            _construct_ws_obj_ver(2, 1, 1, is_public=False),
        ]
        obj_docs = [
            _construct_ws_obj(1, 1, is_public=True),
            _construct_ws_obj(2, 1, is_public=False),
        ]
        obj_to_taxa_docs = [
            {'_from': 'ws_object_version/1:1:1', '_to': 'ncbi_taxon/1', 'assigned_by': 'assn1'},
            {'_from': 'ws_object_version/1:1:2', '_to': 'ncbi_taxon/1', 'assigned_by': 'assn2'},
            {'_from': 'ws_object_version/2:1:1', '_to': 'ncbi_taxon/1', 'assigned_by': 'assn2'},
        ]
        # Create workspace objects associated to taxa
        ws_docs = [
            _ws_defaults({'_key': '1', 'is_public': True}),
            _ws_defaults({'_key': '2', 'is_public': False}),
        ]
        ws_to_obj = [
            {'_from': 'ws_workspace/1', '_to': 'ws_object/1:1'},
            {'_from': 'ws_workspace/2', '_to': 'ws_object/2:1'},
        ]
        ws_type_version_docs = [
            {'_key': 'KBaseGenomes.Genome-99.77', 'module_name': 'KBaseGenomes',
             'type_name': 'Genome', 'maj_ver': 99, 'min_ver': 77}
        ]
        ws_obj_instance_of_type_docs = [
            {'_from': 'ws_object_version/1:1:1', '_to': 'ws_type_version/KBaseGenomes.Genome-99.77'},
            {'_from': 'ws_object_version/1:1:2', '_to': 'ws_type_version/KBaseGenomes.Genome-99.77'}
        ]
        _create_delta_test_docs('ncbi_taxon', taxon_docs)
        _create_delta_test_docs('ncbi_child_of_taxon', child_docs, edge=True)
        create_test_docs('ws_obj_version_has_taxon', obj_to_taxa_docs)
        create_test_docs('ws_object', obj_docs)
        create_test_docs('ws_workspace', ws_docs)
        create_test_docs('ws_workspace_contains_obj', ws_to_obj)
        create_test_docs('ws_object_version', obj_ver_docs)
        create_test_docs('ws_obj_instance_of_type', ws_obj_instance_of_type_docs)
        create_test_docs('ws_type_version', ws_type_version_docs)
示例#6
0
    def setUpClass(cls):
        """
        Create all test data.
        """

        check_spec_test_env()

        ws_object_version = [
            _ws_obj(1, 1, 1),  # root/origin object
            _ws_obj(1, 2, 1),  # copy object
            _ws_obj(1, 3, 1),  # provenance object
            _ws_obj(1, 4, 1),  # reference object
            _ws_obj(1, 5, 1, is_public=False),  # private copy obj
            _ws_obj(1, 6, 1, is_public=False),  # private prov obj
            _ws_obj(1, 7, 1, is_public=False),  # private ref obj
        ]
        create_test_docs('ws_object_version', ws_object_version)
        ws_type_version = [{'_key': 'Module.Type1-1.0'}]
        create_test_docs('ws_type_version', ws_type_version)
        ws_obj_instance_of_type = [
            {
                '_from': 'ws_object_version/1:1:1',
                '_to': 'ws_type_version/Module.Type1-1.0'
            },
            {
                '_from': 'ws_object_version/1:2:1',
                '_to': 'ws_type_version/Module.Type1-1.0'
            },
            {
                '_from': 'ws_object_version/1:3:1',
                '_to': 'ws_type_version/Module.Type1-1.0'
            },
            {
                '_from': 'ws_object_version/1:4:1',
                '_to': 'ws_type_version/Module.Type1-1.0'
            },
        ]
        create_test_docs('ws_obj_instance_of_type', ws_obj_instance_of_type)
        ws_prov_descendant_of = [
            {
                '_from': 'ws_object_version/1:1:1',
                '_to': 'ws_object_version/1:3:1'
            },
            {
                '_from': 'ws_object_version/1:1:1',
                '_to': 'ws_object_version/1:6:1'
            },
        ]
        create_test_docs('ws_prov_descendant_of', ws_prov_descendant_of)
        ws_refers_to = [
            {
                '_from': 'ws_object_version/1:1:1',
                '_to': 'ws_object_version/1:4:1'
            },
            {
                '_from': 'ws_object_version/1:1:1',
                '_to': 'ws_object_version/1:7:1'
            },
        ]
        create_test_docs('ws_refers_to', ws_refers_to)
        ws_copied_from = [
            {
                '_from': 'ws_object_version/1:1:1',
                '_to': 'ws_object_version/1:2:1'
            },
            {
                '_from': 'ws_object_version/1:1:1',
                '_to': 'ws_object_version/1:5:1'
            },
        ]
        create_test_docs('ws_copied_from', ws_copied_from)