Ejemplo n.º 1
0
 def test_delete_by_template_success(self):
     csv_tbl = CSVDataTable("people", CONNECT_INFO,
                            PRIMARY_KEY_SINGLE_FILED)
     result = csv_tbl.delete_by_template(TEMPLATE)
     self.assertEqual(result, 1)
     result = csv_tbl.delete_by_template({"birthYear": "1"})
     self.assertEqual(result, 0)
Ejemplo n.º 2
0
def test_delete_by_template_fail():
    print("\n******************** " + "test_delete_by_template_fail" + " ********************")

    try:
        csv_tbl = CSVDataTable(table_name, connect_info, key_columns)
        print('Delete by template {"birthCountry": "USA", "teamID": "BS1"}')
        tmp = {"birthCountry": "USA", "teamID": "BS1"}
        csv_tbl.delete_by_template(tmp)
    except Exception as e:
        print("Exception =", e)
        print("Correct answer.")

    print("******************** " + "end test_delete_by_template_fail" + " ********************\n")
Ejemplo n.º 3
0
def test_delete_by_template():
    connect_info = {"directory": data_dir, "file_name": "People.csv"}

    csv_tbl = CSVDataTable("people", connect_info, key_columns=["playerID"])

    result1_delete_single = csv_tbl.delete_by_template(template={
        "playerID": "aasedo01",
        "birthYear": "1954"
    })
    result2_delete_multiple = csv_tbl.delete_by_template(
        template={"birthYear": "1954"})

    print(result1_delete_single)
    print(result2_delete_multiple)
Ejemplo n.º 4
0
def test_update_insert():
    t = CSVDataTable("People",
                      connect_info={
                          "directory": "/Users/chenchenwei/Desktop/COMS4111 Databases/HW1/Data",
                          "file_name": "People.csv"
                      },
                      key_columns=[ 'playerID' ], debug=True)

    new_person = {
        "playerID": "dff201",
        "nameLast": "w",
        "nameFirst": "c"
    }

    result = t.insert(new_person)
    print("result = ", json.dumps(result, indent=2))

    tmp = {"playerID": "dff201"}
    new_c = {
        "nameFirst": "DD",
        "birthMonth": "11"
    }

    r1 = t.find_by_template(tmp)
    print("After insert", r1)

    r2 = t.update_by_template(tmp, new_c)
    print("After update", r2)
    r3 = t.find_by_template(tmp)
    print("Find", r3)

    r4 = t.delete_by_template(tmp)
    print("After delete ", r4)
    r1 = t.find_by_template(tmp)
    print("Find again", r1)
Ejemplo n.º 5
0
    def test_delete_by_template_failure(self):
        csv_tbl = CSVDataTable("people", CONNECT_INFO,
                               PRIMARY_KEY_SINGLE_FILED)

        with self.assertRaises(Exception) as context:
            result = csv_tbl.delete_by_template({"": ""})
        self.assertEqual("template column is not a subset of table columns!",
                         str(context.exception))
Ejemplo n.º 6
0
def test_delete_by_template():
    connect_info = {"directory": data_dir, "file_name": "People.csv"}
    csv_tbl = CSVDataTable("people", connect_info, ["playerID"])
    tmp = {"playerID": "aaronha01"}
    print(csv_tbl.find_by_template(tmp))
    a = csv_tbl.delete_by_template(tmp)
    print(a)
    print(csv_tbl.find_by_template(tmp))
Ejemplo n.º 7
0
def t_csv_delete_by_template():
    connect_info = {"directory": data_dir, "file_name": "People.csv"}

    csv_tbl = CSVDataTable("people", connect_info, ["playerID"])

    r = {"playerID": "abbotgl01", "birthYear": "1951", "birthMonth": "2"}
    print("Lines removed:", csv_tbl.delete_by_template(r), "should equal 1")
    print("Lines removed:", csv_tbl.delete_by_template(r), "should equal 0")
    print("Lines removed:", csv_tbl.delete_by_template({"birthYear": "1951"}),
          "should > 1")
    print("Lines removed:", csv_tbl.delete_by_template({"birthYear": "1951"}),
          "should equal 0")
    try:
        csv_tbl.delete_by_template({"fdsfdafd": "123"})
        print("Mismatch test failed")
    except Exception:
        print("Mismatch test passed")
Ejemplo n.º 8
0
def t_delete_by_tmp():
    tmp = {'nameLast': 'Williams', 'nameFirst': 'Ted'}

    connect_info = {"directory": data_dir, "file_name": "People.csv"}

    csv_tbl = CSVDataTable("people", connect_info, None)
    result = csv_tbl.delete_by_template(tmp)
    print(result)
def test_delete_by_template_bad():

    connect_info = {"directory": data_dir, "file_name": "People_test.csv"}

    del_info = {"birthYear": "1980", "birthMonth": "0", "birthDay": "27"}
    csv_tbl = CSVDataTable("people_test.csv", connect_info, None)
    result = csv_tbl.delete_by_template(del_info)
    print("Number of rows deleted by template(testing bad): ", result)
Ejemplo n.º 10
0
def t_csv_del_by_template():
    connect_info = {"directory": data_dir, "file_name": "People.csv"}

    csv_tbl = CSVDataTable("people", connect_info, None)

    # template = {"nameLast": "Williams", "birthCity": "San Diego"}
    template = {"playerID": "aardsda01"}
    n_deletions = csv_tbl.delete_by_template(template)
    print("Delete by template: " + str(n_deletions) + " deletions")
    print(str(csv_tbl))
Ejemplo n.º 11
0
def test_delelt_By_Tmp():
    tem = {'nameLast': 'Williams', 'birthState': 'NC'}
    connect_info = {"directory": data_dir, "file_name": "People.csv"}
    csv_tbl = CSVDataTable("People", connect_info, None)
    result = csv_tbl.delete_by_template(tem)
    print(result)
    print(
        csv_tbl.find_by_template({
            'nameLast': 'Williams',
            'birthState': 'NC'
        }))
Ejemplo n.º 12
0
def t_delete_by_template2():
    connect_info = {
        "directory": data_dir,
        "file_name": "shire.csv"
    }

    tmp = {'last_name': 'Logan'}
    csv_tbl = CSVDataTable('shire', connect_info, None)
    result = csv_tbl.delete_by_template(tmp)
    print("The number of rows to delete by searching template: {}".format(result))
    print("The table now looks like: \n", csv_tbl)
Ejemplo n.º 13
0
def test_delete_by_template():
    connect_info = {"directory": data_dir, "file_name": "_Small.csv"}

    key_cols = ['playerID', 'yearID', 'stint', 'teamID']
    template = {'teamID': 'CL1', 'yearID': '1871'}

    csv_tbl = CSVDataTable("batting", connect_info, key_columns=key_cols)

    output = csv_tbl.delete_by_template(template=template)

    print("Query Result: \n", json.dumps(output, indent=2))
Ejemplo n.º 14
0
def t_delete_by_template():

    connect_info = {
        "directory": data_dir,
        "file_name": "Batting.csv"
    }
    key_cols = ['playerID', 'teamID', 'yearID', 'stint']
    csv_tbl = CSVDataTable("batting", connect_info, key_columns=key_cols)
    tmp = {'playerID': 'aaa', 'teamID': '1997'}
    res = csv_tbl.delete_by_template(tmp)
    print("Query result =", res)
Ejemplo n.º 15
0
def t_delete_by_template():
    connect_info = {"directory": data_dir, "file_name": "Batting.csv"}

    key_cols = ['playerID', 'teamID', 'yearID', 'stint']
    fields = ['playerID', 'teamID', 'yearID', 'stint', 'AB', 'H', 'HR', 'RBI']
    tmp = {'teamID': 'BOS', 'yearID': '1960'}

    csv_tbl = CSVDataTable("batting", connect_info, key_cols)

    res = csv_tbl.delete_by_template(template=tmp)

    # print("Created table = " + str(csv_tbl))
    print("Query result = ", res)
Ejemplo n.º 16
0
def delete_by_template_test(template=None):
    """
    :param data_table:
    :param template:
    :return:
    """
    connect_info = {"directory": data_dir, "file_name": "Salaries.csv"}
    csv_tbl = CSVDataTable("Salaries", connect_info, key_columns=['playerID'])
    template = {'playerID': 'barkele01'}
    affected_num = csv_tbl.delete_by_template(template)
    print("performing delete_by_template_test")
    print("deleted and affected_num is:")
    print(affected_num)
Ejemplo n.º 17
0
def t_delete_by_tmp():
    tmp = {'nameLast': 'Williams', 'nameFirst': 'Ted'}
    field_list = ["playerID", 'nameLast', 'nameFirst']

    connect_info = {
        "directory": data_dir,
        "file_name": "People.csv"
    }

    csv_tbl = CSVDataTable("people", connect_info, None)
    print(csv_tbl.find_by_template(tmp,field_list))
    result = csv_tbl.delete_by_template(tmp)
    print(result)
    print(csv_tbl.find_by_template(tmp, field_list))
Ejemplo n.º 18
0
def t_delete_by_template():
    connect_info = {
        "directory": data_dir,
        "file_name": "Batting.csv"
    }

    key_cols = ['playerID', 'teamID', 'yearID', 'stint']
    tmp = {'yearID': '1900'}

    csv_tbl = CSVDataTable("batting", connect_info, key_columns=key_cols)

    cnt = csv_tbl.delete_by_template(template=tmp)

    print("Number of rows deleted:", cnt)
Ejemplo n.º 19
0
def t_delete_by_template(data_dir, file_name, key_cols, tmp):
    connect_info = {
        "directory": data_dir,
        "file_name": file_name
    }
    csv_tbl = CSVDataTable(file_name.split('.csv')[0], connect_info, key_cols)
    res = csv_tbl.delete_by_template(template=tmp)
    check = csv_tbl.find_by_template(template=tmp)
    if res > 0 and check:
        print("Record found - Delete by template on ", file_name.split('.csv')[0], "failed:\n", tmp, "\n")
    elif res > 0:
        print("Record not found after deletion - Delete By Template on", file_name.split('.csv')[0],
              "with template\n", tmp, "\nwas successful with the deletion of {} rows".format(res), "\n")
    elif res == 0:
        print("No match found for deletion based on the given template", tmp, "\nTest Successful. 0 rows deleted")
Ejemplo n.º 20
0
def test_delete_by_template_good():
    print("\n******************** " + "test_delete_by_template_good" + " ********************")

    try:
        csv_tbl = CSVDataTable(table_name, connect_info, key_columns)
        print('Delete by template key {"birthMonth": "9", "birthDay": "22", "birthCountry": "USA",'
              '"birthState": "MA", "deathCountry": "USA"}')
        tmp = {"birthMonth": "9", "birthDay": "22", "birthCountry": "USA",
               "birthState": "MA", "deathCountry": "USA"}
        r1 = csv_tbl.find_by_template(tmp)
        print('BEFORE deleting, all rows =\n', json.dumps(r1, indent=2))
        print('Deleting...')
        r2 = csv_tbl.delete_by_template(tmp)
        print("Delete returned ", r2, "\n")
        r3 = csv_tbl.find_by_template(tmp)
        print('AFTER deleting, all rows =\n', json.dumps(r3, indent=2))
        print("Correct answer.")
    except Exception as e:
        print("Exception =", e)
        print("Wrong answer.")

    print("******************** " + "end test_delete_by_template_good" + " ********************\n")
Ejemplo n.º 21
0
def test_delete_by_template():
    print("\n******************** " + "test_delete_by_template" +
          " ********************")

    print("Compare time elapsed for delete_by_template.")
    csv_tbl = CSVDataTable(table_name, csv_connect_info, key_columns)
    rdb_tbl = RDBDataTable(table_name, rdb_connect_info, key_columns)
    tmp = {"birthCountry": "USA", "birthState": "MA", "birthCity": "Boston"}

    start1 = time.time()
    r1 = csv_tbl.delete_by_template(tmp)
    end1 = time.time()
    elapsed1 = end1 - start1
    print("Time elapsed for CSVDataTable is ", elapsed1, "seconds.")

    start2 = time.time()
    r2 = rdb_tbl.delete_by_template(tmp)
    end2 = time.time()
    elapsed2 = end2 - start2
    print("Time elapsed for RDBDataTable is ", elapsed2, "seconds.")

    print("******************** " + "end test_delete_by_template" +
          " ********************\n")
Ejemplo n.º 22
0
def t_delete_by_template():
    connect_info = {"directory": data_dir, "file_name": "Batting.csv"}
    key_cols = ['playerID', 'teamID', 'yearID', 'stint']
    tmp = {'playerID': 'aardsda01', 'yearID': '1999'}
    file = "csv_table_test.txt"
    with open(file, 'a+') as f:
        f.write("\n\n******************** " + "test_delete_by_template" +
                " ********************")
    try:
        csv_tbl = CSVDataTable("batting", connect_info, key_columns=key_cols)
        new_record = {
            'playerID': 'aardsda01',
            'yearID': '1999',
            'teamID': 'ATL',
            'stint': '0'
        }
        csv_tbl.insert(new_record)
        with open(file, 'a+') as f:
            f.write("\nLooking up with template = " + str(tmp))
        r1 = csv_tbl.find_by_template(tmp)
        with open(file, 'a+') as f:
            f.write("\nReturned row = '\n'" + str(json.dumps(r1, indent=3)))
        r2 = csv_tbl.delete_by_template(tmp)
        with open(file, 'a+') as f:
            f.write("\nDelete returned " + str(r2))
        r3 = csv_tbl.find_by_template(tmp)
        with open(file, 'a+') as f:
            f.write("\nQuery result after delete='\n'" +
                    str(json.dumps(r3, indent=3)))
            f.write("\nThis is the correct answer")
    except Exception as e:
        with open(file, 'a+') as f:
            f.write("\nDelete failed. Exception = " + str(e))
            f.write("\nThis is the wrong answer.")
    with open(file, 'a+') as f:
        f.write("\n******************** " + "end test_delete_by_template" +
                " ********************")
Ejemplo n.º 23
0
def t_delete_by_template():
    connect_info = {
        "directory": "../Data",
        "file_name": "orderdetails.csv",
        "delimiter": ";"
    }

    csv_tbl = CSVDataTable("orderdetails", connect_info,
                           key_columns=["orderNumber", "orderLineNumber"])
    fields = ['orderNumber', 'productCode']
    tmp = {'productCode': "S18_1749"}

    r1 = csv_tbl.find_by_template(template=tmp, field_list=fields)
    print("Details for order '10100' = \n", json.dumps(r1, indent=2))

    print("\nDeleting productCode 'S18_1749':")
    del_tmp = {'orderNumber': "10100", 'productCode': 'S18_1749'}
    r2 = csv_tbl.delete_by_template(template=del_tmp)

    print("Delete returned ", r2, "\n")

    tmp2 = {'orderNumber': "10100"}
    r3 = csv_tbl.find_by_template(template=tmp2, field_list=fields)
    print("Details for order '10100' after delete = \n", json.dumps(r3, indent=2))
Ejemplo n.º 24
0
import csv

from src.CSVDataTable import CSVDataTable


connect_info = {
    "directory": '../Data/baseballdatabank-2019.2/core/',
    "file_name": "Appearances.csv"
}

csv_tbl = CSVDataTable("Appearances", connect_info, ['yearID','teamID','playerID',''])
result = csv_tbl.find_by_primary_key(['1871','CL1','bassjo01'])
result1 = csv_tbl.find_by_template({'teamID':'TRO','playerID':'abercda01'})
result2 = csv_tbl.delete_by_key(['1871','CL1','bassjo01'])
result3 = csv_tbl.delete_by_template({'teamID':'TRO','playerID':'abercda01'})
result4 = csv_tbl.update_by_key(['1871','RC1','barkeal01'],['1996','JGS','janane1'])
result5 = csv_tbl.update_by_template({'teamID':'JGS','playerID':'janane1'},{'teamID':'JJJ','playerID':'jjjjjjjjjj'})
result6 = csv_tbl.insert({'G_ss': '15', 'teamID': 'BS1', 'G_lf': '0',
                          'lgID': 'NA', 'yearID': '1871', 'G_3b': '0',
                          'G_defense': '31', 'G_rf': '0', 'G_all': '31',
                          'G_pr': '0', 'GS': '31', 'G_batting': '31', 'G_1b': '0',
                          'G_p': '0', 'playerID': 'barnero01', 'G_c': '0', 'G_cf': '0',
                          'G_2b': '16', 'G_ph': '0', 'G_of': '0', 'G_dh': '0'})
print('find_by_primary_key',result)
print('find_by_template',result1)
print('delete_by_key',result2)
print('delete_by_template',result3)
print('update_by_key',result4)
print('update_by_template',result5)
print('insert',result6)
# csv_data = load_csv(dir_path, file_name)