Example #1
0
def test_remove_non_existing_centre():
    prov = Provider('*****@*****.**', '1234', 'McTester', 'Test',
                    '124024114', 'Official Tester')
    assert (prov.email == '*****@*****.**')
    assert (prov.centres == [])
    checker = prov.remove_centre('Randwick Hospital')
    assert (checker is False)
Example #2
0
def test_setters():
    p = Provider('*****@*****.**', '1234', 'McTester', 'Test', '124024114',
                 'Official Tester')

    p.email = '*****@*****.**'
    info = p.get_information()
    assert (info['email'] == '*****@*****.**')

    p.password = '******'
    info = p.get_information()
    assert (info['password'] != 'wooowthatsgreat'
            and info['password'] == 'WoooWThatsGreat')

    p.surname = 'MCTESTing'
    info = p.get_information()
    assert (info['surname'] == 'mctesting')

    p.given_name = 'TEEEESt'
    info = p.get_information()
    assert (info['given_name'] == 'teeeest')

    p.provider_no = '123123'
    info = p.get_information()
    assert (info['provider_no'] == '123123')

    p.service = 'OFFicial TESTer'
    info = p.get_information()
    assert (info['service'] == 'official tester')
Example #3
0
def test_get_availability_for_existing_date():
    p = Provider('1', '1', '1', '', '', '')
    p.add_centre('rand')
    p.get_availability('rand', 2019, 9, 20)
    p.make_time_slot_unavailable('rand', 2019, 9, 20, '08:30')
    val = p.get_availability('rand', 2019, 9, 20)
    assert ('08:30' not in val and type(val) is list)
Example #4
0
def test_remove_existing_centre():
    prov = Provider('*****@*****.**', '1234', 'McTester', 'Test',
                    '124024114', 'Official Tester')
    assert (prov.centres == [])
    prov.add_centre('rand')
    assert ('rand' in prov.centres)
    checker = prov.remove_centre('RAnd')
    assert (checker == True)
    assert (prov.centres == [])
Example #5
0
def test_make_non_existing_and_available_slots_unavailable():
    p = Provider('1', '1', '1', '', '', '')
    p.add_centre('rand')
    p.get_availability('rand', 2019, 9, 20)
    checker = p.make_time_slot_unavailable('rand', 2019, 9, 20, '08:30')
    assert (checker == True)
    val = p.get_availability('rand', 2019, 9, 20)
    assert ('08:30' not in val)
    checker = p.make_time_slot_unavailable('rand', 2019, 9, 20, '09:30')
    val = p.get_availability('rand', 2019, 9, 20)
    assert ('08:30' not in val and '09:30' not in val)
Example #6
0
def test_getters():
    p = Provider('*****@*****.**', '1234', 'McTester', 'Test', '124024114',
                 'Official Tester')
    info = p.get_information()
    assert (info["email"] == '*****@*****.**'.lower())
    assert (info["password"] == '1234'.lower())
    assert (info["surname"] == 'McTester'.lower())
    assert (info["given_name"] == 'Test'.lower())
    assert (info["provider_no"] == '124024114'.lower())
    assert (info["service"] == 'Official Tester'.lower())
    assert (info["appointments"] == [])
    assert (info["centres"] == [])
    assert (info["availability"] == {})
    assert (info["rating"] == 0)
Example #7
0
 def add_provider_by_info(self,
                          email,
                          password,
                          surname,
                          given_name,
                          provider_no,
                          service,
                          specialist=False):
     if not any(provider.email == email.lower()
                for provider in self._providers):
         self._providers.append(
             Provider(email, password, surname, given_name, provider_no,
                      service, specialist))
         self.__add_provider_to_services(email.lower(), service.lower())
         return True  # Success, could instead return new provider object
     else:
         return False  # Failed (already in providers)
Example #8
0
def test_add_rating_for_existing_patient():
    p = Provider('1', '1', '1', '', '', '')
    p.add_rating('*****@*****.**', 3)
    assert (p.rating['*****@*****.**'] == 3)
    p.add_rating('*****@*****.**', 5)
    assert (p.rating['*****@*****.**'] == 5)
Example #9
0
def test_get_availability_for_existing_centre_and_valid_date():
    p = Provider('1', '1', '1', '', '', '')
    p.add_centre('rand')
    with pytest.raises(DateTimeValidityError) as info:
        checker = p.get_availability('rand', 2018, 19, 220)
Example #10
0
def test_add_non_existing_centre():
    p1 = Provider('*****@*****.**', '1234', 'McTester', 'Test', '124024114',
                  'Official Tester')
    assert (p1.centres == [])
    p1.add_centre('Randwick Hospital')
    assert ('Randwick Hospital'.lower() in p1.centres)
Example #11
0
def test_get_availability_invalid_date():
    p = Provider('1', '1', '1', '', '', '')
    with pytest.raises(DateTimeValidityError) as info:
        checker = p.get_availability('centre', 13, 22, 414)
    with pytest.raises(DateTimeValidityError) as info:
        checker = p.get_availability('centre', 'lol', 22, 414)
Example #12
0
def test_get_availability_for_non_existing_centre_but_valid_date():
    p = Provider('1', '1', '1', '', '', '')
    # p.add_centre('rand')
    with pytest.raises(BookingError) as info:
        p.get_availability('centre', 2019, 12, 14)
Example #13
0
def test_calc_average_rating_with_more_than_1_rating():
    p = Provider('1', '1', '1', '', '', '')
    p.add_rating('*****@*****.**', 3)
    p.add_rating('*****@*****.**', 2)
    p.add_rating('*****@*****.**', 5)
    assert (p.average_rating == (3 + 2 + 5) / (float(3)))
Example #14
0
def test_calc_average_rating_with_out_ratings():
    p = Provider('1', '1', '1', '', '', '')
    assert (p.average_rating == 0)
    p.add_rating('*****@*****.**', 3)
    p.remove_rating('*****@*****.**')
    assert (p.average_rating == 0)
Example #15
0
def test_remove_rating_of_non_existing_patient():
    p = Provider('1', '1', '1', '', '', '')
    checker = p.remove_rating('*****@*****.**')
    assert (checker == False)
    assert (list(p.rating.keys()) == [])
Example #16
0
def test_calc_average_rating_with_1_rating():
    p = Provider('1', '1', '1', '', '', '')
    p.add_rating('*****@*****.**', 3)
    assert (p.average_rating == 3)
Example #17
0
def test_add_existing_centre():
    pp1 = Provider('trst', '123', 'sad', '12312', '2323', 'Blah')
    assert (pp1.centres == [])
    pp1.add_centre('Randwick Hospital')
    pp1.add_centre('randwick hospital')
    assert (len(pp1.centres) == 1)
Example #18
0
def prov_fixture1():
    p1 = Provider("*****@*****.**", "pwd", "smith", "john", 123, "GP")
    p2 = Provider("*****@*****.**", "pwd", "smith", "jane", 123, "Surgeon")
    p3 = Provider("*****@*****.**", "pwd", "sss", "jane", 123, "Physio")
    p4 = Provider("*****@*****.**", "pwd", "Strange", "Stephen", 123, "GP")
    return [p1, p2, p3, p4]
Example #19
0
def test_add_string_rating():
    p = Provider('1', '1', '1', '', '', '')
    assert (list(p.rating.keys()) == [])
    checker = p.add_rating('*****@*****.**', '1')
    assert (checker == False)
    assert (list(p.rating.keys()) == [])
Example #20
0
def test_add_int_NOT_between_0_and_5_rating():
    p = Provider('1', '1', '1', '', '', '')
    assert (list(p.rating.keys()) == [])
    checker = p.add_rating('*****@*****.**', -1)
    assert (checker == False)
    assert (list(p.rating.keys()) == [])
Example #21
0
def test_add_int_between_0_and_5_rating():
    p = Provider('1', '1', '1', '', '', '')
    p.add_rating('*****@*****.**', 3)
    assert ('*****@*****.**' in p.rating.keys())
    assert (p.rating['*****@*****.**'] == 3)
Example #22
0
def prov_fixture2():
    p1 = Provider("*****@*****.**", "pwd", "smith", "john", 123, "GP")
    p2 = Provider("*****@*****.**", "pwd", "smith", "jane", 123, "GP")
    p3 = Provider("*****@*****.**", "pwd", "sss", "jane", 123, "Physio")
    return [p1, p2, p3]
Example #23
0
def test_remove_rating_of_existing_patient():
    p = Provider('1', '1', '1', '', '', '')
    p.add_rating('*****@*****.**', 3)
    checker = p.remove_rating('*****@*****.**')
    assert (checker == True)
    assert (list(p.rating.keys()) == [])