Ejemplo n.º 1
0
def test_update_row(tmpdir):
    dbm = DbManager(tmpdir)
    dbm.create_db('test_db')
    dbm.use_db('test_db')

    test_schema = {'name': 'str', 'age': 'int', 'employed': 'bool'}
    dbm.create_table("test_table", test_schema)

    # insert 3 dummy rows
    test_row1 = {'name': 'EchipaRacheta', 'age': '24', 'employed': "False"}
    dbm.insert_row("test_table", test_row1)
    test_row2 = {'name': 'EchipaRacheta2', 'age': '25', 'employed': "False"}
    dbm.insert_row("test_table", test_row2)
    test_row3 = {'name': 'EchipaRacheta2', 'age': '25', 'employed': "False"}
    dbm.insert_row("test_table", test_row3)

    # update row id 1
    new_row = {'name': 'EchipaRachetaTest', 'age': '29', 'employed': 'True'}
    dbm.update_row("test_table", 1, new_row)

    rows = dbm.scan_rows('test_table')
    for row in rows:
        if row['_rowid'] == 1:
            new_row['_rowid'] = 1
            assert new_row == row
            break

    dbm.delete_db('test_db')
Ejemplo n.º 2
0
def test_del_column(tmpdir):
    dbm = DbManager(tmpdir)
    dbm.create_db('test_db')
    dbm.use_db('test_db')

    test_schema = {'name': 'str', 'age': 'int', 'employed': 'bool'}
    dbm.create_table("test_table", test_schema)
    path_db = os.path.join(tmpdir, "test_db")
    path_table = os.path.join(path_db, "test_table")

    #insert two rows in the current table
    test_row1 = {'name': 'EchipaRacheta', 'age': '24', 'employed': "False"}
    dbm.insert_row("test_table", test_row1)
    test_row2 = {'name': 'EchipaRacheta2', 'age': '25', 'employed': "False"}
    dbm.insert_row("test_table", test_row2)

    #remove a column for this test
    dbm.del_column("test_table", "age")
    updated_schema = dbm.get_table_schema("test_table")

    #check if new sschema has been updated accordingly
    assert not 'age' in updated_schema.keys()
    del test_schema['age']
    assert test_schema == updated_schema

    #get list of rows
    rows = dbm.scan_rows('test_table')

    for row in rows:
        path_column = os.path.join(path_table, str(row['_rowid']))
        check_path = os.path.join(path_column, 'age:bool')
        assert not os.path.exists(check_path)
        assert not "age" in row.keys()

    dbm.delete_table('test_table')
Ejemplo n.º 3
0
def test_from_csv(tmpdir):
    dbm = DbManager(tmpdir)
    input_path = os.path.join(tmpdir, "test_db.csv")
    db_testPath = os.path.join(tmpdir, "test_db")
    table1_path = os.path.join(db_testPath, "test_table1")
    table2_path = os.path.join(db_testPath, "test_table2")
    record1 = {'name': 'EchipaRacheta', 'age': '24', 'employed': 'False'}
    record2 = {'name': 'EchipaRacheta2', 'age': '25', 'employed': 'False'}
    record3 = {'description': 'descrierea dummy ', 'isMember': 'True'}
    record4 = {'description': 'descrierea dummy 2', 'isMember': 'False'}
    record_list = [record1, record2, record3, record4]

    input_content = """test_table1,name:str,age:int,employed:bool
test_table1,0,age,24
test_table1,0,employed,False
test_table1,0,name,EchipaRacheta
test_table1,1,age,25
test_table1,1,employed,False
test_table1,1,name,EchipaRacheta2

test_table2,description:str,isMember:bool
test_table2,0,description,descrierea dummy 
test_table2,0,isMember,True
test_table2,1,description,descrierea dummy 2
test_table2,1,isMember,False

"""
    f = open(input_path, 'w')
    f.write(input_content)
    f.close()
    dbm.from_csv(input_path)

    assert os.path.exists(db_testPath)
    assert os.path.isdir(db_testPath)
    assert os.path.exists(table1_path)
    assert os.path.exists(table2_path)
    assert os.path.isdir(table1_path)
    assert os.path.isdir(table2_path)

    dbm = DbManager(tmpdir)
    dbm.use_db('test_db')
    schema1 = dbm.get_table_schema('test_table1')
    schema2 = dbm.get_table_schema('test_table2')
    #check schema
    assert schema1 == {'name': 'str', 'age': 'int', 'employed': 'bool'}
    assert schema2 == {'description': 'str', 'isMember': 'bool'}

    #check rows
    listOfTables = dbm.get_tables('test_db')
    for table in listOfTables:
        records_table1 = dbm.scan_rows(table)
        for record in records_table1:
            del record['_rowid']
            assert record in record_list
Ejemplo n.º 4
0
def test_scan_rows(tmpdir):
    dbm = DbManager(tmpdir)
    dbm.create_db('test_db')
    dbm.use_db('test_db')

    row1 = {'name': 'Cristea', 'age': '24', 'employed': 'False'}
    row2 = {'name': 'Cernescu', 'age': '23', 'employed': 'True'}
    row3 = {'name': 'Vasiliu', 'age': '24', 'employed': 'False'}
    test_schema = {'name': 'str', 'age': 'int', 'employed': 'bool'}
    dbm.create_table('user', test_schema)
    dbm.insert_row('user', row1)
    dbm.insert_row('user', row2)
    dbm.insert_row('user', row3)

    test_records = [row1, row2, row3]
    records = dbm.scan_rows('user')
    for record in records:
        del record['_rowid']
        assert record in test_records
Ejemplo n.º 5
0
def test_insert_row(tmpdir):
    dbm = DbManager(tmpdir)
    dbm.create_db('test_db')
    dbm.use_db('test_db')

    test_schema = {'name': 'str', 'age': 'int', 'employed': 'bool'}
    dbm.create_table("test_table", test_schema)

    test_row1 = {'name': 'EchipaRacheta', 'age': '24', 'employed': "False"}
    dbm.insert_row("test_table", test_row1)
    test_row1["_rowid"] = 0

    test_row2 = {'name': 'EchipaRacheta2', 'age': '25', 'employed': "False"}
    dbm.insert_row("test_table", test_row2)
    test_row2["_rowid"] = 1

    test_row3 = {'name': 'EchipaRacheta3', 'age': '26', 'employed': "False"}
    dbm.insert_row("test_table", test_row3)
    test_row3["_rowid"] = 2

    test_row4 = {'name': 'EchipaRacheta4', 'age': '27', 'employed': "False"}
    dbm.insert_row("test_table", test_row4)
    test_row4["_rowid"] = 3

    test_row5 = {'name': 'EchipaRacheta5', 'age': '28', 'employed': "False"}
    dbm.insert_row("test_table", test_row5)
    test_row5["_rowid"] = 4

    inserted_testRows = [test_row1, test_row2, test_row3, test_row4, test_row5]

    rows = dbm.scan_rows("test_table")
    isFound = True

    #check if all rows inserted in the table are exactly those created above
    for row in rows:
        if row not in inserted_testRows:
            isFound = False
            break

    assert isFound == True
    dbm.delete_db('test_db')
Ejemplo n.º 6
0
def test_add_column(tmpdir):
    dbm = DbManager(tmpdir)
    dbm.create_db('test_db')
    dbm.use_db('test_db')

    test_schema = {'name': 'str', 'age': 'int', 'employed': 'bool'}
    dbm.create_table("test_table", test_schema)
    path_db = os.path.join(tmpdir, "test_db")
    path_table = os.path.join(path_db, "test_table")

    # #insert two dummy rows in the current table
    test_row1 = {'name': 'EchipaRacheta', 'age': '24', 'employed': "False"}
    dbm.insert_row("test_table", test_row1)
    test_row2 = {'name': 'EchipaRacheta2', 'age': '25', 'employed': "False"}
    dbm.insert_row("test_table", test_row2)

    # add column test
    dbm.add_column("test_table", "test_column", "bool")
    updated_schema = dbm.get_table_schema('test_table')

    #check if schema is updated
    assert "test_column" in updated_schema.keys()
    assert updated_schema['test_column'] == 'bool'
    del updated_schema['test_column']
    assert updated_schema == test_schema

    #check if a new file is created for the new column recently added
    rows = dbm.scan_rows('test_table')
    for row in rows:
        path_column = os.path.join(path_table, str(row['_rowid']))
        check_path = os.path.join(path_column, 'test_column.bool')
        assert os.path.exists(check_path)
        assert os.path.isfile(check_path)
        assert "test_column" in row.keys()
        assert row["test_column"] == ''

    dbm.delete_table('test_table')