Esempio n. 1
0
 def test_create_source(self):
     source = {'slug': 'foo', 'title': 'Foo source', 'url': 'http://foo'}
     Source.ensure(source)
     session.commit()
     cnt = session.query(Source).count()
     assert cnt == 1, cnt
     Source.ensure(source)
     session.commit()
     cnt = session.query(Source).count()
     assert cnt == 1, cnt
Esempio n. 2
0
def load_ba_fixtures(config):
    # This is messy. Would be cool to do it more cleanly, but how?
    if not len(BA_FIXTURES['entities']):
        with open(os.path.join(FIXTURES, 'ba.mapping.yaml'), 'rb') as fh:
            mapping = yaml.load(fh)
        mapper = Mapper(mapping, config.resolver, scope=config.base_uri)
        with open(os.path.join(FIXTURES, 'ba.csv'), 'rb') as csvfh:
            reader = unicodecsv.DictReader(csvfh)
            for row in reader:
                _, data = mapper.apply(row)
                BA_FIXTURES['entities'].append(data)

    source = Source.ensure({
        'slug': BA_SOURCE,
        'title': 'BiH Parliament',
        'url': 'http://foo.ba/'
    })
    permission = Permission()
    permission.role_id = Role.SYSTEM_USER
    permission.read = True
    permission.write = False
    permission.resource_id = source.id
    permission.resource_type = Permission.SOURCE
    session.add(permission)
    session.commit()
    for entity in BA_FIXTURES['entities']:
        config.entities.save(entity['$schema'], entity, source_id=source.id)
    get_loom_indexer().index(source=BA_SOURCE)
Esempio n. 3
0
def load_ba_fixtures(config):
    # This is messy. Would be cool to do it more cleanly, but how?
    if not len(BA_FIXTURES['entities']):
        with open(os.path.join(FIXTURES, 'ba.mapping.yaml'), 'rb') as fh:
            mapping = yaml.load(fh)
        mapper = Mapper(mapping, config.resolver, scope=config.base_uri)
        with open(os.path.join(FIXTURES, 'ba.csv'), 'rb') as csvfh:
            reader = unicodecsv.DictReader(csvfh)
            for row in reader:
                _, data = mapper.apply(row)
                BA_FIXTURES['entities'].append(data)

    source = Source.ensure({
        'slug': BA_SOURCE,
        'title': 'BiH Parliament',
        'url': 'http://foo.ba/'
    })
    permission = Permission()
    permission.role_id = Role.SYSTEM_USER
    permission.read = True
    permission.write = False
    permission.resource_id = source.id
    permission.resource_type = Permission.SOURCE
    session.add(permission)
    session.commit()
    for entity in BA_FIXTURES['entities']:
        config.entities.save(entity['$schema'], entity, source_id=source.id)
    get_loom_indexer().index(source=BA_SOURCE)
Esempio n. 4
0
 def setUp(self):
     super(SourcesApiTestCase, self).setUp()
     self.source = Source()
     self.source.slug = "test"
     self.source.title = "Test Collection"
     self.source.url = "http://test.com/"
     session.add(self.source)
     session.flush()
     permission = Permission()
     permission.role_id = Role.SYSTEM_USER
     permission.read = True
     permission.write = True
     permission.resource_id = self.source.id
     permission.resource_type = Permission.SOURCE
     session.add(permission)
     session.commit()
Esempio n. 5
0
File: cli.py Progetto: occrp/loom
def flush(ctx, source, flush_all):
    """ Clear all statements about a source from the statement DB. """
    try:
        if source is None and not flush_all:
            msg = "Either specify a --source or pass --all"
            raise click.ClickException(msg)
        config = ctx.obj['CONFIG']
        source_obj = Source.by_slug(source)
        source_id = None
        if source_obj is not None:
            source_id = source_obj.id
        elif source_obj is None and source is not None:
            raise click.ClickException("No such source: %r" % source)
        config.types.delete(source_id=source_id)
        config.properties.delete(source_id=source_id)
    except LoomException as le:
        raise click.ClickException(le.message)
Esempio n. 6
0
File: spec.py Progetto: occrp/loom
 def source(self):
     if not hasattr(self, '_source_id'):
         source = self.get('source')
         log.info("Registering source: %r", source['slug'])
         self._source_id = Source.ensure(source).id
     return self._source_id