def test_read_db_from_disk(): """ Tests that database can be loaded from disk """ d1 = Donor('Maggie', 1000, 2000, 3000) d2 = Donor('Doug', 1111, 2222, 3333, 4444, 5555) d3 = Donor('キラ') db1 = db() db1.add_donor(d1) db1.add_donor(d2) db1.add_donor(d3) db2 = db() db1.save_db_to_disk('./test_db.pkl') db2.read_db_from_disk('./test_db.pkl') assert str(d1) in str(db2.database) assert str(d2) in str(db2.database) assert str(d3) in str(db2.database) os.remove('./test_db.pkl') with pytest.raises(FileNotFoundError): db2.read_db_from_disk('./test_db.pkl')
def test_save_db_to_disk(): """ Tests that you can save the database to disk """ d1 = Donor('Maggie', 1000, 2000, 3000) d2 = Donor('Doug', 1111, 2222, 3333, 4444, 5555) d3 = Donor('キラ') db1 = db() db1.add_donor(d1) db1.add_donor(d2) db1.add_donor(d3) db1.save_db_to_disk('./test_db.pkl') assert os.path.isfile('./test_db.pkl') os.remove('./test_db.pkl')
def test_remove_donation(): """ Test ability to remove a donation from a donor """ d1 = Donor('Maggie', 1000, 2000, 3000) db1 = db(d1) assert 1000 in d1.donations db1.remove_donation('Maggie', 1000) assert 1000 not in d1.donations assert 2000 in d1.donations db1.remove_donation('Maggie', 2000) assert 2000 not in d1.donations assert db1.remove_donation('Doug', 2000) ==\ 'Donation 2000 from donor Doug not found in database'
def test_donordb_repr(): """ Tests donordb __repr__ method """ d1 = Donor('Maggie', 1000, 2000, 3000) d2 = Donor('Doug', 1111, 2222, 3333, 4444, 5555) d3 = Donor('キラ', 9001) db1 = db() db1.add_donor(d1) db1.add_donor(d2) db1.add_donor(d3) string = f'{d1.name:>24} : {d1.donations}\n' string += f'{d2.name:>24} : {d2.donations}\n' string += f'{d3.name:>24} : {d3.donations}\n' assert string == repr(db1)
def test_add_donor(): """ Tests that you can add a donor to the database """ d1 = Donor('Maggie') d2 = Donor('Doug', 1000) d3 = Donor('キラ', 9001) db1 = db(d1) db1.add_donor(d2) db1.add_donor(d3) assert str(d1) in str(db1.database) assert str(d2) in str(db1.database) assert str(d3) in str(db1.database) assert db1.add_donor('Maggie') == 'Maggie already exists in database' assert db1.add_donor('Kurami') == 'Kurami has been added to the database' assert 'Kurami' in str(db1.database)
def test_rename_donor(): """ Tests that you can rename a donor """ d1 = Donor('Light', 1000, 2000, 3000) d2 = Donor('Doug', 1111, 2222, 3333, 4444, 5555) db1 = db() db1.add_donor(d1) db1.add_donor(d2) db1.rename_donor('Light', 'キラ') assert 'Light' not in str(db1.database) assert 'キラ' in str(db1.database) assert db1.rename_donor('Light', 'キラ') == 'Donor キラ already exists in database' assert db1.rename_donor('キラ', 'Doug') == 'Donor Doug already exists in database'
def test_remove_donor(): """ Tests ability to remove a donor from donordb """ d1 = Donor('Maggie', 1000, 2000, 3000) d2 = Donor('Doug', 1111, 2222, 3333, 4444, 5555) d3 = Donor('キラ', 9001) db1 = db() db1.add_donor(d1) db1.add_donor(d2) db1.add_donor(d3) assert str(d1) in str(db1.database) db1.remove_donor('Maggie') assert str(d1) not in str(db1.database) assert str(d2) in str(db1.database) db1.remove_donor('Doug') assert str(d2) not in str(db1.database) assert db1.remove_donor('Kurami') == 'Kurami not found in database' assert 'Kurami' not in db1.database
def test_add_donation2(): """ Tests that you can add a donation to the database """ d1 = Donor('Maggie') db1 = db(d1) assert 2000 not in db1.database['Maggie'].donations db1.add_donation('Maggie', 2000) assert 2000 in db1.database['Maggie'].donations db1.add_donation('Maggie', 5000) assert 5000 in db1.database['Maggie'].donations assert db1.add_donation( 'Maggie', int('-1000')) == '-1000 is not a valid donation amount' assert -1000 not in db1.database assert db1.add_donation( 'Maggie', 'foobar') == 'foobar is not a valid donation amount' assert 'foobar' not in db1.database assert db1.add_donation('Doug', 1000) == 'Doug not found in database' assert 1000 not in db1.database