11#!/usr/bin/env python
22
33import mailroom
4- import pytest
54import os .path
65
76
@@ -15,53 +14,49 @@ def test_return_to_menu():
1514 assert result is True
1615
1716
18- def test_remove_inputquotes ():
19- astring = "'hello'"
20- output = 'hello'
21- assert mailroom .remove_inputquotes (astring ) == output
22-
23-
2417def test_generate_letter ():
2518 mailroom .DONORS = {'Fred Armisen' : [240 , 422 , 1000 ],
2619 'Heinz the Baron Krauss von Espy' : [1500 , 2300 ],
2720 'Margaret Atwood' : [300 , 555 ]}
28- output = 'Thank you, Margaret Atwood, for your generosity and recent gift of $555.'
29- assert mailroom .generate_letter ('Margaret Atwood' ) == output
21+ returnval = mailroom .generate_letter ('Margaret Atwood' )
22+ assert "Margaret Atwood" in returnval
23+ assert "$555" in returnval
3024
3125
3226def test_generate_report_data ():
3327 mailroom .DONORS = {'Fred Armisen' : [240 , 422 , 1000 ],
3428 'Heinz the Baron Krauss von Espy' : [1500 , 2300 ],
3529 'Margaret Atwood' : [300 , 555 ]}
36- output = [('Heinz the Baron Krauss von Espy' , 3800 , 2 , 1900 ),
37- ('Fred Armisen' , 1662 , 3 , 554 ),
38- ('Margaret Atwood' , 855 , 2 , 428 )]
39- assert mailroom .generate_report_data () == output
30+ returnval = set (mailroom .generate_report_data ())
31+ assert len (mailroom .DONORS ) == len (returnval )
32+ assert ('Fred Armisen' , 1662 , 3 , 554 ) in returnval
4033
4134
4235def test_setup_table ():
43- ''' this is not working'''
44- output = """'Donor Name |
45- Total Given |Num Gifts |Average Gift'\n ,
46- '----------------------------------------
47- -------------------------------------'"""
48- assert mailroom .setup_table () == output
36+ returnval = mailroom .setup_table ()
37+ assert returnval .startswith ("Donor Name" )
38+ assert "Total Given" in returnval
39+ assert "Num Gifts" in returnval
40+ assert "Average Gift" in returnval
4941
5042
5143def test_setup_body ():
52- ''' this is not working'''
44+ mailroom .DONORS = {'Fred Armisen' : [240 , 422 , 1000 ],
45+ 'Heinz the Baron Krauss von Espy' : [1500 , 2300 ],
46+ 'Margaret Atwood' : [300 , 555 ]}
5347 list_data = mailroom .generate_report_data ()
54- output = """'Heinz the Baron Krauss von Espy $ 3800.00 2 $ 1900.00 \n Fred Armisen $ 1662.00
55- 3 $ 554.00 \n Margaret Atwood $ 855.00 2 $ 428.00 \n '
56- """
57- assert mailroom .setup_body (list_data ) == output
48+ returnval = mailroom .setup_body (list_data )
49+ nlines = returnval .count ('\n ' )
50+ assert "Margaret Atwood" in returnval
51+ assert "Fred Armisen" in returnval
52+ assert nlines == len (mailroom .DONORS )
53+
5854
5955def test_remove_inputquotes ():
6056 output = 'hello'
6157 assert mailroom .remove_inputquotes ("hello" ) == output
6258
6359
64-
6560def test_retrieve_donor_exists ():
6661 mailroom .DONORS = {'Fred Armisen' : [240 , 422 , 1000 ],
6762 'Heinz the Baron Krauss von Espy' : [1500 , 2300 ],
@@ -70,13 +65,12 @@ def test_retrieve_donor_exists():
7065 output = [300 , 555 ]
7166 assert mailroom .retrieve_donations (name ) == output
7267
68+
7369def test_retrieve_donations_new ():
7470 mailroom .DONORS = {'Fred Armisen' : [240 , 422 , 1000 ],
7571 'Heinz the Baron Krauss von Espy' : [1500 , 2300 ],
7672 'Margaret Atwood' : [300 , 555 ]}
77- name = "Paul Simon"
78- output = None
79- assert mailroom .retrieve_donations (name ) == output
73+ assert mailroom .retrieve_donations ("Paul Simon" ) is None
8074
8175
8276def test_add_donation_new ():
@@ -96,27 +90,42 @@ def test_add_donation_existing():
9690 name = "Fred Armisen"
9791 amount = 500
9892 mailroom .add_donation (name , amount )
99- assert mailroom .retrieve_donations (name ) == [240 , 422 , 1000 , 500 ]
100-
101-
102- def test_select_action1 ():
103- ''' not sure how to test if correct action was completed
104- something called "mock" has this capability?'''
105- pass
93+ assert mailroom .retrieve_donations (name )[- 1 ] == amount
10694
10795
10896def test_file_existance ():
10997 mailroom .DONORS = {'Fred Armisen' : [240 , 422 , 1000 ],
11098 'Heinz the Baron Krauss von Espy' : [1500 , 2300 ],
11199 'Margaret Atwood' : [300 , 555 ]}
112100 mailroom .send_letters ()
113- c1 = os .path .isfile ("Margaret_Atwood.txt" )
114- c2 = os .path .isfile ("Fred_Armisen.txt" )
115- c3 = os .path .isfile ("Heinz_the_Baron_Krauss_von_Espy.txt" )
116- output = c1 and c2 and c3
117- assert output is True
101+ assert os .path .isfile ("Margaret_Atwood.txt" )
102+ assert os .path .isfile ("Fred_Armisen.txt" )
103+ assert os .path .isfile ("Heinz_the_Baron_Krauss_von_Espy.txt" )
104+
105+
106+ def test_select_action_bad ():
107+ arg_dict = {"1" : mailroom .update_donors ,
108+ "2" : mailroom .send_letters }
109+ assert mailroom .select_action (arg_dict , "5" ) is False
110+
111+
112+ def test_donor_list ():
113+ mailroom .DONORS = {'Fred Armisen' : [240 , 422 , 1000 ],
114+ 'Heinz the Baron Krauss von Espy' : [1500 , 2300 ],
115+ 'Margaret Atwood' : [300 , 555 ]}
116+ returnval = mailroom .make_donor_list ()
117+ nlines = returnval .count ('\n ' )
118+ assert returnval .startswith ("Donor Names:" )
119+ assert "Margaret Atwood" in returnval
120+ assert "Fred Armisen" in returnval
121+ assert nlines == len (mailroom .DONORS )
122+
123+
124+ def test_elect_action_good ():
125+ arg_dict = {"1" : some_function , "2" : mailroom .send_letters }
126+ x = mailroom .select_action (arg_dict , "1" )
127+ assert x == 'this worked'
118128
119129
120- def test_select_actionbad ():
121- arg_dict = {"1" : "dummy1" , "2" : "dummy2" , "3" : "dummy3" }
122- assert mailroom .select_action (arg_dict ,"5" ) == False
130+ def some_function ():
131+ return "this worked"
0 commit comments