def test_add_furniture(): """ testing add furniture fucntion""" # clean the file l.clean_file("rented_items.csv") l.add_furniture("rented_items.csv", "Elisa Miles", "LR04", "Leather Sofa", 25) header = ("customer_name", "item_code", "item_description", "item_monthly_price") result = dict(zip(header, ("Elisa Miles", "LR04", "Leather Sofa", "25"))) lines = l.read_csv("rented_items.csv") line = next(lines) assert line == result
def test_add_furniture_should_create_invoice(self): """ Create invoice, verify CSV created""" # Given expected_filename = "rented_items.csv" expected_directory = "./invoices" file_path = Path(expected_directory) / expected_filename # When add_furniture("rented_items.csv", "Elisa Miles", "LR04", "Leather Sofa", 25) # Then self.assertTrue(os.path.isfile(file_path))
def test_add_furniture(): """ Tests add_furniture function using a randomly generated list of customers, items, prices, and codes. Function should create file if it does not exist and append to it if it does. """ # print(TEST_LIST) for item in TEST_LIST: inv.add_furniture(item[0], item[1], item[2], item[3], item[4]) with open('data/super_test_uncopyable_filename.csv', 'r') as read_file: test_reader = list(csv.reader(read_file)) for index, line in enumerate(test_reader): assert line == TEST_LIST[index][1:] os.remove('data/super_test_uncopyable_filename.csv')
def test_add_furniture(self): """This method will test the add_furniture function in inventory.py""" file_path = os.path.join(os.path.dirname(__file__), '..', 'src', 'test_add_furniture.csv') try: os.remove(file_path) except FileNotFoundError: LOGGER.debug("No leftover files found") actual_items1 = [] inventory.add_furniture("test_add_furniture.csv", "Elisa Miles", "LR04", "Leather Sofa", 25) inventory.add_furniture("test_add_furniture.csv", "Edward Data", "KT78", "Kitchen Table", 10) inventory.add_furniture("test_add_furniture.csv", "Alex Gonzales", "QM15", "Queen Mattress", 17) with open(file_path) as test: test_reader = csv.reader(test, delimiter=',', quotechar='"') for row in test_reader: actual_items1.append(row) expected_items1 = [["Elisa Miles", "LR04", "Leather Sofa", '25'], ["Edward Data", "KT78", "Kitchen Table", '10'], ["Alex Gonzales", "QM15", "Queen Mattress", '17']] self.assertEqual(actual_items1, expected_items1) os.remove(file_path)
def test_create_invoice_for_single_customer_should_create_invoice(self): """ Test create_invoice to see if file is generated correctly """ # Given expected_contents = [ "Elisa Miles,LR04,Leather Sofa,25\n", "Edward Data,KT78,Kitchen Table,10\n", "Alex Gonzales,BR02,Queen Mattress,17\n", "Susan Wong,LR04,Leather Sofa,25.00\n", "Susan Wong,KT78,Kitchen Table,10.00\n", "Susan Wong,BR02,Queen Mattress,17.00\n", ] # Whenadd_furniture("rented_items.csv", "Elisa Miles", "LR04", "Leather Sofa", 25) add_furniture("rented_items.csv", "Elisa Miles", "LR04", "Leather Sofa", 25) add_furniture("rented_items.csv", "Edward Data", "KT78", "Kitchen Table", 10) add_furniture("rented_items.csv", "Alex Gonzales", "BR02", "Queen Mattress", 17) create_invoice = single_customer("Susan Wong", "rented_items.csv") self.assertTrue(callable(create_invoice)) create_invoice("test_items.csv") # Then actual_lines = [] with open("./invoices/rented_items.csv", "r") as f: for line in f: actual_lines.append(line) self.assertListEqual(expected_contents, actual_lines)
def test_add_furniture_should_add_line_to_blank_file(self): """ Create invoice, add line to it""" # Given filename = "rented_items.csv" directory = "./invoices" file_path = Path(directory) / filename name = "Elisa Miles" prod_id = "LR04" description = "Leather Sofa" price = 25 expected_line = ",".join([name, prod_id, description, str(price)]) expected_line += "\n" # When add_furniture(filename, name, prod_id, description, price) # Then with open(file_path, "r") as f: read_line = f.readline() self.assertEqual(expected_line, read_line)
def test_add_furniture(): inventory.add_furniture('invoice.csv', 'Elisa Miles', 'LR04', 'Leather Sofa', '25.00') inventory.add_furniture('invoice.csv', 'Edward Data', 'KT78', 'Kitchen Table', '10.00') inventory.add_furniture('invoice.csv', 'Alex Gonzales', 'BR02', 'Queen Mattress', '17.00') with open('invoice.csv', 'r') as file: reader = csv.reader(file) test_invoice = [line for line in reader] invoice = [['Elisa Miles', 'LR04', 'Leather Sofa', '25.00'], ['Edward Data', 'KT78', 'Kitchen Table', '10.00'], ['Alex Gonzales', 'BR02', 'Queen Mattress', '17.00']] assert test_invoice == invoice os.remove('invoice.csv')
def test_add_furniture_should_be_able_to_add_multiple_lines(self): """ Create invoice, add many entries """ # Given expected_lines = [ "Elisa Miles,LR04,Leather Sofa,25\n", "Edward Data,KT78,Kitchen Table,10\n", "Alex Gonzales,BR02,Queen Mattress,17\n", ] # When add_furniture("rented_items.csv", "Elisa Miles", "LR04", "Leather Sofa", 25) add_furniture("rented_items.csv", "Edward Data", "KT78", "Kitchen Table", 10) add_furniture("rented_items.csv", "Alex Gonzales", "BR02", "Queen Mattress", 17) actual_lines = [] with open("./invoices/rented_items.csv", "r") as f: for line in f: actual_lines.append(line) # Then self.assertListEqual(expected_lines, actual_lines)