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
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)
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()
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)
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