def setUp(self): self.db = ContactBook(':memory:') self.db.add_contact('Test', 'Tester', 111222333, '*****@*****.**') self.db.add_contact('John', 'Doe', 333222111, '*****@*****.**') self.db.add_contact('Jane', 'Doe', 444555666, '*****@*****.**') self.contact = ('Jim', 'Doe', 777888999, '*****@*****.**')
class TestView(unittest.TestCase): def setUp(self): self.view = View() self.db = ContactBook(':memory:') self.db.add_contact('Test', 'Tester', 111222333, '*****@*****.**') self.contact_list = self.db.view_contacts() def test_init(self): self.assertTrue(self.view) def test_display_contacts(self): self.view.display_contacts(self.contact_list) def test_show_contact(self): self.view.show_contact(self.contact_list[0]) def test_display_contact_added(self): self.view.display_contact_added(self.contact_list[0]) def test_display_update_contact_prompt(self): self.view.display_update_contact_prompt(self.db.view_contacts()) def test_display_contact_updated(self): self.view.display_contact_updated() def test_display_contact_removed(self): self.view.display_contact_removed() def test_prompt_first(self): self.view.prompt_first() def test_prompt_last(self): self.view.prompt_last() def test_prompt_phone(self): self.view.prompt_phone() def test_prompt_email(self): self.view.prompt_email() def test_available_options(self): self.view.available_options() def def_choose_remove_contact(self): self.view.choose_remove_contact() def test_command_not_found(self): self.view.command_not_found()
def contact_book(): contact_book = ContactBook() try: with open('contacts.csv', 'r') as f: reader = csv.reader(f) for idx, row in enumerate(reader): if idx == 0: continue contact_book.add(row[0], row[1], row[2]) except: pass return render_template('contact_book.html', contacts=contact_book._contacts)
def setUp(self): model = ContactBook(':memory:') model.add_contact('Test', 'Tester', 111222333, '*****@*****.**') model.add_contact('John', 'Doe', 333222111, '*****@*****.**') model.add_contact('Jane', 'Doe', 444555666, '*****@*****.**') view = View() self.controller = Controller(model, view)
def main(): print('Please enter database location: ') db = input() controller = Controller(ContactBook(db), View()) print('Contact book successfully opened') command = '' while command.lower() != 'q': controller.view.available_options() command = input() if command.lower() == 'update': controller.update_contact() elif command.lower() == 'add': controller.add_contact() elif command.lower() == 'remove': controller.remove_contact() elif command.lower() == 'display': controller.show_contacts() elif command.lower() == 'find': controller.find_contact() elif command.lower() != 'q': controller.view.command_not_found()
def delete_contact(email): if request.form: contact_book = ContactBook() try: with open('contacts.csv', 'r') as f: reader = csv.reader(f) for idx, row in enumerate(reader): if idx == 0: continue contact_book.add(row[0], row[1], row[2]) contact_book.delete(email) except: pass return redirect('/')
def add_contact(): # Si el request trae un formulario, se imprimen los valores if request.form: contact_book = ContactBook() try: with open('contacts.csv', 'r') as f: reader = csv.reader(f) for idx, row in enumerate(reader): if idx == 0: continue contact_book.add(row[0], row[1], row[2]) except: pass contact_book.add(request.form.get('name'), request.form.get('phone'), request.form.get('email')) flash('Contact added successfully') return render_template('add_contact.html')
def view_contact(name): contact_book = ContactBook() return contact_book.getContact(name)
def setUp(self): self.view = View() self.db = ContactBook(':memory:') self.db.add_contact('Test', 'Tester', 111222333, '*****@*****.**') self.contact_list = self.db.view_contacts()
def test_init(self, mock_conn, mock_create_table): ContactBook(':memory:') mock_conn.assert_called_with(':memory:') mock_create_table.assert_called_once() self.assertTrue(self.db)
class TestContactBook(unittest.TestCase): def setUp(self): self.db = ContactBook(':memory:') self.db.add_contact('Test', 'Tester', 111222333, '*****@*****.**') self.db.add_contact('John', 'Doe', 333222111, '*****@*****.**') self.db.add_contact('Jane', 'Doe', 444555666, '*****@*****.**') self.contact = ('Jim', 'Doe', 777888999, '*****@*****.**') @patch.object(ContactBook, 'create_table') @patch('models.sqlite3.connect') def test_init(self, mock_conn, mock_create_table): ContactBook(':memory:') mock_conn.assert_called_with(':memory:') mock_create_table.assert_called_once() self.assertTrue(self.db) def test_table_creation(self): self.db.cur = Mock() self.db.create_table() self.db.cur.execute.assert_called_with(DATABASE_CREATION_COMMAND) def test_add_contact(self): self.db.add_contact('test', 'test', 123123123, '*****@*****.**') contact = self.db.cur.execute( """SELECT * FROM contacts WHERE id = 4""") details = contact.fetchone() expected = (4, 'test', 'test', 123123123, '*****@*****.**') self.assertEqual(details, expected) def test_find_contact(self): found = self.db.find_contact(first_name='test') expected = [(1, 'Test', 'Tester', 111222333, '*****@*****.**')] self.assertEqual(found, expected) found = self.db.find_contact(user_id=2) expected = [(2, 'John', 'Doe', 333222111, '*****@*****.**')] self.assertEqual(found, expected) found = self.db.find_contact(last_name='doe') expected = [(2, 'John', 'Doe', 333222111, '*****@*****.**'), (3, 'Jane', 'Doe', 444555666, '*****@*****.**')] self.assertEqual(found, expected) found = self.db.find_contact(phone=333222111) expected = [(2, 'John', 'Doe', 333222111, '*****@*****.**')] self.assertEqual(found, expected) found = self.db.find_contact(email='test') expected = [(1, 'Test', 'Tester', 111222333, '*****@*****.**'), (2, 'John', 'Doe', 333222111, '*****@*****.**'), (3, 'Jane', 'Doe', 444555666, '*****@*****.**')] self.assertEqual(found, expected) found = self.db.find_contact(None, '', '', '' '') expected = [] self.assertEqual(found, expected) def test_view_contacts(self): returned = self.db.view_contacts() expected = [(1, 'Test', 'Tester', 111222333, '*****@*****.**'), (2, 'John', 'Doe', 333222111, '*****@*****.**'), (3, 'Jane', 'Doe', 444555666, '*****@*****.**')] self.assertEqual(returned, expected) def test_return_wildcards(self): returned = self.db.return_wildcards(None, None, None, None, None) expected = (None, None, None, None, None) self.assertEqual(returned, expected) returned = self.db.return_wildcards(1, 'test', 'test', 123, '*****@*****.**') expected = ('%1%', '%test%', '%test%', '%123%', '%[email protected]%') self.assertEqual(returned, expected) def test_update_contact(self): first_name, last_name, phone, email = self.contact self.db.update_contact(2, self.contact, first_name='Jim', phone=777888999, email='*****@*****.**') found = self.db.find_contact(user_id=2) expected = [(2, 'Jim', 'Doe', 777888999, '*****@*****.**')] self.assertEqual(found, expected) def test_remove_contact(self): self.db.remove_contact(1) found = self.db.find_contact(email='test') expected = [(2, 'John', 'Doe', 333222111, '*****@*****.**'), (3, 'Jane', 'Doe', 444555666, '*****@*****.**')] self.assertEqual(found, expected)