Exemple #1
0
class TestWithDB(TestCase):
    db_file = Path() / 'data.db'

    def setUp(self) -> None:
        super().setUp()
        basicConfig(level=INFO)

        self.db_file.unlink(missing_ok=True)
        self.db = Database(f'sqlite:///{self.db_file}')

        async def init():
            await self.db.connect()
            await migrate(self.db)

        get_event_loop().run_until_complete(init())

    def tearDown(self) -> None:
        super().tearDown()
        get_event_loop().run_until_complete(self.db.disconnect())
        self.db_file.unlink(missing_ok=True)
Exemple #2
0
class ShowsDB(object):
    def __init__(self):
        self.database = Database(url=DATABASE_URL,
                                 ssl='require',
                                 min_size=1,
                                 max_size=2)
        self.metadata = MetaData()
        self.shows = Table('shows', self.metadata,
                           Column('show_id', Integer, primary_key=True),
                           Column('type', String, nullable=True),
                           Column('title', String, nullable=True),
                           Column('director', String, nullable=True),
                           Column('cast', String, nullable=True),
                           Column('country', String, nullable=True),
                           Column('date_added', Date, nullable=True),
                           Column('release_year', Integer, nullable=True),
                           Column('rating', String, nullable=True),
                           Column('duration', String, nullable=True),
                           Column('listed_in', String, nullable=True),
                           Column('description', String, nullable=True))

    def initialize(self):
        engine = create_engine(DATABASE_URL)
        self.metadata.create_all(engine)
        return self

    def connect(self):
        return self.database.connect()

    def disconnect(self):
        return self.database.disconnect()

    def execute(self, query, get='all'):
        if get != 'all':
            return self.database.fetch_one(query)
        return self.database.fetch_all(query)

    def fetch_all(self, query):
        return self.database.fetch_all(query)