Beispiel #1
0
    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)
Beispiel #2
0
    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')
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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
Beispiel #6
0
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()