Exemplo n.º 1
0
def test_show_table_name_not_a_string():
    db = core_database.Database([
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ], ['example_table'])
    with pytest.raises(ValueError):
        db.show(['not_a_string'])
Exemplo n.º 2
0
def test_show():
    db = core_database.Database([
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ], ['example_table'])
    assert db.show('example_table').shape[0] == 3
    assert isinstance(db.show('example_table'), pd.DataFrame)
Exemplo n.º 3
0
def test_add_table_valid_data_in_dict():
    df = pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                      columns=['name', 'age'])
    db = core_database.Database()
    num_of_tables = len(db.tables)
    db.add_table({'example_table': df})
    assert num_of_tables == len(db.tables) - 1
Exemplo n.º 4
0
def test_select_wrong_syntax():
    db = core_database.Database([
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ], ['example_table'])
    with pytest.raises(ValueError):
        db.select('SELECT * FROMMMMM example_table')
Exemplo n.º 5
0
def test_insert_data_dict():
    my_db = core_database.Database(
        [pd.DataFrame({
            'name': ['John', 'Mary'],
            'age': [32, 18]
        })], ['USERS'])
    my_db.insert_data('USERS', {'name': 'Bob', 'age': 22})
    assert my_db.show('USERS').shape[0] == 3
Exemplo n.º 6
0
def test_insert_data_wrong_data_type():
    my_db = core_database.Database(
        [pd.DataFrame({
            'name': ['John', 'Mary'],
            'age': [32, 18]
        })], ['USERS'])
    with pytest.raises(TypeError):
        my_db.insert_data('USERS', [{'name': 'Bob', 'age': 22}])
Exemplo n.º 7
0
def test_insert_data_dict_wrong_column_name():
    my_db = core_database.Database(
        [pd.DataFrame({
            'name': ['John', 'Mary'],
            'age': [32, 18]
        })], ['USERS'])
    with pytest.raises(ValueError):
        my_db.insert_data('USERS', {'WRONG_NAME': 'Bob', 'age': 22})
Exemplo n.º 8
0
def test_init_no_parameters():
    db = core_database.Database()
    assert hasattr(db, "connection")
    assert hasattr(db, "cursor")
    assert hasattr(db, "name")
    assert hasattr(db, "tables")
    assert db.name is None
    assert db.tables == []
Exemplo n.º 9
0
def test_run_query_simple_select():
    db = core_database.Database([
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ], ['example_table'])
    assert isinstance(db.run_query('SELECT * FROM example_table'),
                      pd.DataFrame)
    assert not db.run_query('SELECT * FROM example_table').empty
Exemplo n.º 10
0
def test_run_query_with_pragma():
    db = core_database.Database([
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ], ['example_table'])
    assert isinstance(db.run_query('''PRAGMA TABLE_INFO('example_table')'''),
                      pd.DataFrame)
    assert not db.run_query('''PRAGMA TABLE_INFO('example_table')''').empty
Exemplo n.º 11
0
def test_drop_table():
    df = pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                      columns=['name', 'age'])
    db = core_database.Database([df], ['table_1'])
    num_of_tables = len(db.tables)
    db.drop_table('table_1')
    assert num_of_tables == len(db.tables) + 1
    with pytest.raises(ValueError):
        db.get_table('table_1')
Exemplo n.º 12
0
def test_insert_data_pandas_dataframe():
    my_db = core_database.Database(
        [pd.DataFrame({
            'name': ['John', 'Mary'],
            'age': [32, 18]
        })], ['USERS'])
    more_data = pd.DataFrame({'name': ['Bob', 'Simram'], 'age': [22, 5]})
    my_db.insert_data('USERS', more_data)
    assert my_db.show('USERS').shape[0] == 4
Exemplo n.º 13
0
def test_info_on_existent_table_but_called_with_wrong_name():
    db = core_database.Database([
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ], ['example_table'])
    t = db.get_table('example_table')
    assert isinstance(t, Table)
    with pytest.raises(ValueError):
        db.info('table_does_not_exist')
Exemplo n.º 14
0
def test_remove_on_existent_table():
    db = core_database.Database([
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ], ['example_table'])
    t = db.get_table('example_table')
    assert isinstance(t, Table)
    assert db.remove(t) is None
    assert len(db.tables) == 0
Exemplo n.º 15
0
def test_summary_on_existent_table():
    example_df = [
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ]
    db = core_database.Database(example_df, ['example_table'])
    df = db.summary()
    assert isinstance(df, pd.DataFrame)
    assert not df.empty
    assert list(df.columns.values) == ['Table Name', 'Rows', 'Columns']
    assert any(df['Table Name'] == 'example_table')
    assert df[df['Table Name'] == 'example_table']['Rows'].values[0] == 3
    assert df[df['Table Name'] == 'example_table']['Columns'].values[0] == 2
Exemplo n.º 16
0
def test_insert_data_wrong_columns_in_new_data():
    my_db = core_database.Database(
        [pd.DataFrame({
            'name': ['John', 'Mary'],
            'age': [32, 18]
        })], ['USERS'])
    more_data = pd.DataFrame({
        'name': ['Bob', 'Simram'],
        'age': [22, 5],
        'height': [170, 120]
    })
    with pytest.raises(ValueError):
        my_db.insert_data('USERS', more_data)
Exemplo n.º 17
0
def test_create_table_with_primary_key():
    db = core_database.Database()
    num_of_tables = len(db.tables)
    db.create_table(
        'example_table', {
            'user_id': 'INTEGER PRIMARY KEY AUTOINCREMENT',
            'first_name': 'TEXT',
            'join_date': 'DATE',
            'score': 'FLOAT'
        })
    assert num_of_tables == len(db.tables) - 1
    assert db.get_table('example_table').name == 'example_table'
    assert db.info().shape[0] == 1
Exemplo n.º 18
0
def test_info_on_existent_table():
    db = core_database.Database([
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ], ['example_table'])
    t = db.get_table('example_table')
    assert isinstance(t, Table)
    df = db.info('example_table')
    assert isinstance(df, pd.DataFrame)
    assert set(list(df.columns.values)) == {
        'Column ID', 'Column Name', 'Type', 'Not NULL?', 'Default Value',
        'Primary Key?'
    }
    assert all(df[df['Column Name'] == 'Primary Key?'])
    assert any(df[df['Column Name'] == 'age'])
Exemplo n.º 19
0
def test_create_table_with_primary_key_and_foreign_key():
    db = core_database.Database()
    num_of_tables = len(db.tables)
    db.create_table(
        'example_table_1', {
            'user_id': 'INTEGER PRIMARY KEY AUTOINCREMENT',
            'first_name': 'TEXT',
            'join_date': 'DATE',
            'score': 'FLOAT'
        })
    db.create_table(
        'example_table_2', {
            'food_id': 'INTEGER',
            'user_id': 'INTEGER REFERENCES example_table_1(user_id)'
        })
    assert num_of_tables == len(db.tables) - 2
    assert db.info().shape[0] == 2
Exemplo n.º 20
0
def test_rename_table_which_doesnt_exist():
    df = pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                      columns=['name', 'age'])
    db = core_database.Database([df], ['table_1'])
    with pytest.raises(ValueError):
        db.rename_table('some_table_name_that_doesnt_exist', 'new_name')
Exemplo n.º 21
0
def test_drop_table_when_no_tables_exist():
    db = core_database.Database()
    with pytest.raises(ValueError):
        db.drop_table("this_table_doesnt_exist")
Exemplo n.º 22
0
def test_remove_on_non_existent_table():
    db = core_database.Database()
    with pytest.raises(ValueError):
        db.remove(Table(pd.DataFrame(), 'some_table_name_that_doesnt_exist'))
Exemplo n.º 23
0
def test_drop_table_when_no_tables_exist_empty_string():
    db = core_database.Database()
    with pytest.raises(ValueError):
        db.drop_table("")
Exemplo n.º 24
0
def test_create_table_empty_string():
    db = core_database.Database()
    with pytest.raises(ValueError):
        db.create_table('', {'user_id': 'INT'})
Exemplo n.º 25
0
def test_create_table_incorrect_table_name_format():
    db = core_database.Database()
    with pytest.raises(ValueError):
        db.create_table(['not_a_string'], {'user_id': 'INT'})
Exemplo n.º 26
0
def test_create_table_incorrect_column_data_format():
    db = core_database.Database()
    with pytest.raises(ValueError):
        db.create_table('not_a_string', [{'user_id': 'INT'}])
Exemplo n.º 27
0
def test_get_table_on_non_existent_table():
    db = core_database.Database()
    with pytest.raises(ValueError):
        db.get_table('some_table_name_that_doesnt_exist')
Exemplo n.º 28
0
def test_rename_table_not_a_string():
    df = pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                      columns=['name', 'age'])
    db = core_database.Database([df], ['table_1'])
    with pytest.raises(TypeError):
        db.rename_table('table_1', ['a_list'])
Exemplo n.º 29
0
	def test_func_1(self):
		"""
		"""
		my_db = core_database.Database()
		assert my_db.name is None
		assert 1 == 0
Exemplo n.º 30
0
def test_get_table_check_table_type():
    db = core_database.Database([
        pd.DataFrame([['tom', 10], ['bob', 15], ['juli', 14]],
                     columns=['name', 'age'])
    ], ['example_table'])
    assert isinstance(db.get_table('example_table'), Table)