def test_namespace_url(self): uploaded = datetime.datetime.now() model = Namespace( keyword='TEST', url='http://test.com', name='Test Namespace', domain=NAMESPACE_DOMAIN_OTHER, species='9606', version='1.0.0', author='Charles Tapley Hoyt', contact='*****@*****.**', uploaded=uploaded, ) expected = dict( keyword='TEST', url='http://test.com', name='Test Namespace', version='1.0.0', ) self.assertEqual(model.to_json(), expected) expected['id'] = model.id = 1 self.assertEqual(model.to_json(include_id=True), expected)
def test_drop_namespace(self): keyword, url = n(), n() namespace = Namespace(keyword=keyword, url=url) self.manager.session.add(namespace) n_entries = 5 for _ in range(n_entries): entry = NamespaceEntry(name=n(), namespace=namespace) self.manager.session.add(entry) self.manager.session.commit() self.assertEqual(1, self.manager.count_namespaces(), msg='Should have one namespace') self.assertEqual(n_entries, self.manager.count_namespace_entries(), msg='Should have {} entries'.format(n_entries)) self.manager.drop_namespace_by_url(url) self.assertEqual(0, self.manager.count_namespaces(), msg='Should have no namespaces') self.assertEqual(0, self.manager.count_namespace_entries(), msg='Entries should have been dropped')
def test_namespace_pattern(self): uploaded = datetime.datetime.now() model = Namespace(keyword='TEST', pattern='\w+', name='Test Namespace', domain=NAMESPACE_DOMAIN_OTHER, species='9606', version='1.0.0', author='Charles Tapley Hoyt', contact='*****@*****.**', uploaded=uploaded) expected = dict( keyword='TEST', pattern='\w+', name='Test Namespace', version='1.0.0', ) self.assertEqual(model.to_json(), expected)
def test_namespace_entry(self): model = NamespaceEntry(name='entry', namespace=Namespace(keyword='test')) expected = {NAMESPACE: 'test', NAME: 'entry'} self.assertEqual(model.to_json(), expected) expected['id'] = model.id = 1 self.assertEqual(model.to_json(include_id=True), expected) expected[IDENTIFIER] = model.identifier = 'test:00001' self.assertEqual(model.to_json(include_id=True), expected)
def _make_namespace(self) -> Namespace: """Make a namespace.""" namespace = Namespace( name=self._get_namespace_name(), keyword=self._get_namespace_keyword(), url=self._get_namespace_url(), version=str(time.asctime()), ) self.session.add(namespace) entries = self._get_namespace_entries(namespace) self.session.add_all(entries) t = time.time() logger.info('committing models') self.session.commit() logger.info('committed models in %.2f seconds', time.time() - t) return namespace
def make_dummy_namespaces(manager, graph, namespaces): """ :param pybel.manager.Manager manager: :param pybel.BELGraph graph: :param dict[str,iter[str]] namespaces: """ for keyword, names in namespaces.items(): url = n() graph.namespace_url[keyword] = url namespace = Namespace(keyword=keyword, url=url) manager.session.add(namespace) manager.namespace_model[url] = namespace for name in names: entry = manager.namespace_object_cache[url][ entry.name] = NamespaceEntry(name=name, namespace=namespace) manager.session.add(entry) manager.session.commit()