def test_end_to_end(cls):
        """ Lifecyle End To End Test """
        basic_operations.create_database()
        assert os.path.exists(basic_operations.DATABASE_NAME)
        basic_operations.add_customer(0,
                                     'jaimes',
                                     'hernandez',
                                     '101 Elliot Ave. SE',
                                     '205-222-1111',
                                     '*****@*****.**',
                                     True,
                                     2000)
        assert basic_operations.search_customer(1)

        assert basic_operations.update_customer_credit(1, 2000)
        results = basic_operations.search_customer_status(1)
        for result in results:
            assert int(result['customer_id']) == 1
            assert result['status']
            assert int(result['credit_limit']) == 2000

        assert basic_operations.update_customer_credit(1, 3000)
        results = basic_operations.search_customer_status(1)
        for result in results:
            assert int(result['customer_id']) == 1
            assert result['status']
            assert int(result['credit_limit']) == 3000

        assert int(basic_operations.list_active_customers()) > 0
        assert basic_operations.delete_customer(1)
        assert int(basic_operations.list_active_customers()) == 0

        basic_operations.delete_database()
        assert not os.path.exists(basic_operations.DATABASE_NAME)
 def test_update_customer_credit_invalid(cls):
     """
     Ensure can update an invalid customer's credit in the database  fails
     """
     assert basic_operations.create_database()
     basic_operations.add_customer(0, 'jaimes', 'hernandez',
                                   '101 Elliot Ave. SE', '205-222-1111',
                                   '*****@*****.**', True, 2000)
     assert not basic_operations.update_customer_credit(10, 3000)
     result = basic_operations.search_customer_status(10)
     assert len(result) == 0
     basic_operations.delete_customers()
    def test_update_customer_credit_valid(cls):
        """ Ensure can update an active customer's credit in the database """
        assert basic_operations.create_database()
        basic_operations.add_customer(0, 'jaimes', 'hernandez',
                                      '101 Elliot Ave. SE', '205-222-1111',
                                      '*****@*****.**', True, 2000)
        assert basic_operations.update_customer_credit(1, 3000)
        results = basic_operations.search_customer_status(1)
        for result in results:
            assert int(result['customer_id']) == 1
            assert result['status']
            assert int(result['credit_limit']) == 3000

        basic_operations.delete_customers()