def main(): path = 'data' # TODO: this should be moved to a config.ini bike_csv = 'bicycles/bicycles.csv' customer_csv = 'customers/customers.csv' inv_csv = 'inventory/inventory.csv' # TODO: move to utils csv_data = lambda csv_name: csv_to_dict(csv_path=os.path.join(path, *csv_name.split('/'))) bikes = [Bicycle(**v) for k, v in csv_data(bike_csv).iteritems()] customers = [Customer(**v) for k, v in csv_data(customer_csv).iteritems()] mikes_shop = BikeShop() mikes_shop.inventory = csv_data(inv_csv) # TODO: move to function "display_state" data = dict(customers=customers, bikes=bikes, inventory=mikes_shop.inventory ) p_format = lambda s: '{:#<30}{}{:#>30}'.format('', s, '') for category, items in data.iteritems(): print p_format(category) + '\n' for item in items: print item
def test_returns_col_0_keyed_to_dict_of_all_headers_to_values(self): expected_res = {'a': {'name': 'a', 'rank': 'b', 'serial_number': 'c'}, '1': {'name': '1', 'rank': '2', 'serial_number': '3'} } res = csv_to_dict(os.path.join(self.path, *self.csv.split('/'))) self.assertEqual(expected_res, res)