def test_step24_save_to_csv(self):
        from address_book import AddressBook
        book_name = "book_name"
        book = AddressBook.create_from_csv("book_name", "addresses.csv")

        # remove old file so that we have a guarantee that a file is generated
        try:
            os.remove(book.name + ".csv")
        except:
            pass

        book.save_to_csv()

        with open("addresses.csv") as org, open(book.name + ".csv") as copy:
            are_equal = org.readlines() == copy.readlines()

        self.assertTrue(are_equal, msg="Loaded and saved files are not equal")
 def test_step23_create_from_csv_addresses(self):
     from address_book import AddressBook
     expected = self.create_address_book().addresses
     book = AddressBook.create_from_csv("book_name", "addresses.csv")
     actual = book.addresses
     self.assertListEqual(expected, actual)
 def test_step21_create_from_csv_length(self):
     from address_book import AddressBook
     book = AddressBook.create_from_csv("book_name", "addresses.csv")
     self.assertIsInstance(book, AddressBook)
     self.assertEqual(5, len(book.addresses))
 def test_step22_create_from_csv_name(self):
     from address_book import AddressBook
     book_name = "book_name"
     book = AddressBook.create_from_csv("book_name", "addresses.csv")
     self.assertEqual("book_name", book.name)
 def open_address_book_from_file():
     file_name = View.ask_for_file_name()
     name = file_name[:-4]
     return AddressBook.create_from_csv(name, file_name)