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, '*****@*****.**')
Exemple #2
0
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()
Exemple #3
0
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)
Exemple #5
0
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()
Exemple #6
0
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('/')
Exemple #7
0
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')
Exemple #8
0
def view_contact(name):

    contact_book = ContactBook()
    return contact_book.getContact(name)
Exemple #9
0
 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)