def test_engine_busbus_dir_other_error(): outerdir = tempfile.mkdtemp() dir = os.path.join(outerdir, 'inner') os.mkdir(dir) old_mode = os.stat(outerdir).st_mode os.chmod(outerdir, int('400', 8)) with pytest.raises(OSError): engine = busbus.Engine({'busbus_dir': dir}) os.chmod(outerdir, old_mode) os.rmdir(dir) os.rmdir(outerdir)
def test_already_imported(provider, gtfs_zip_data): assert len(list( provider.conn.cursor().execute('select id from _feeds'))) == 1 e = busbus.Engine({'gtfs_db_path': provider.conn}) responses.add(responses.GET, SampleGTFSProvider.gtfs_url, body=gtfs_zip_data, status=200, content_type='application/zip') p = SampleGTFSProvider(e) assert provider.conn is p.conn assert provider.feed_id == p.feed_id assert len(list(provider.agencies)) == 1
def __init__(self, engine, **kwargs): self.id = hashlib.sha1( six.b('{0}:{1!r}'.format(clsname(self), kwargs.get('__init_args__', {})))).hexdigest() if engine: self.engine = engine else: self.engine = busbus.Engine() self.engine._register_provider(self) self._requests = requests.Session() # This requests session object, wrapped with CacheControl, is useful # for long-term storage of larger files, such as GTFS data. self._cached_requests = CacheControl( self._requests, cache=FileCache(self.engine.config['url_cache_dir']))
def test_engine_busbus_dir_exists(): dir = tempfile.mkdtemp() engine = busbus.Engine({'busbus_dir': dir}) os.rmdir(dir)
def test_util_clsname(): engine = busbus.Engine() assert util.clsname(engine) == 'busbus.Engine'
def test_util_entity_type_error(): engine = busbus.Engine() with pytest.raises(TypeError): busbus.util.entity_type(busbus.entity.BaseEntity) with pytest.raises(TypeError): busbus.util.entity_type(engine)