예제 #1
0
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)
예제 #2
0
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
예제 #3
0
    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']))
예제 #4
0
def test_engine_busbus_dir_exists():
    dir = tempfile.mkdtemp()
    engine = busbus.Engine({'busbus_dir': dir})
    os.rmdir(dir)
예제 #5
0
def test_util_clsname():
    engine = busbus.Engine()
    assert util.clsname(engine) == 'busbus.Engine'
예제 #6
0
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)