def test_dues15_notice(self): """ test the dues15 notice view -- acknowledge incoming payments """ self.config.add_route('detail', '/detail/') self.config.add_route('make_dues15_invoice_no_pdf', '/') # prepare test candidate m1 = C3sMember.get_by_id(1) # german normal member m1.membership_accepted = True from c3smembership.views.membership_dues import send_dues15_invoice_email req0 = testing.DummyRequest(matchdict={'member_id': m1.id}) req0.referrer = 'detail' resp0 = send_dues15_invoice_email(req0) resp0 # tame flymake partial_payment_amount = D('10') # here comes the request to test req1 = testing.DummyRequest(matchdict={'member_id': 1}, POST={ 'amount': partial_payment_amount, 'payment_date': '2015-09-11', }) from c3smembership.views.membership_dues import dues15_notice res1 = dues15_notice(req1) res1 # tame flymake # After the partial payment, some amount has been paid self.assertEqual(m1.dues15_paid, True) # it has been the partial payment amount self.assertEqual(m1.dues15_amount_paid, partial_payment_amount) self.assertEqual(m1.dues15_paid_date, datetime(2015, 9, 11, 0, 0)) # the balance is the original amount subtracted by the partial payment self.assertEqual(m1.dues15_balance, D(m1.dues15_amount) - partial_payment_amount) # and the account is not balanced. self.assertEqual(m1.dues15_balanced, False) # here comes the request to test req2 = testing.DummyRequest(matchdict={'member_id': 1}, POST={ 'amount': D(m1.dues15_amount) - partial_payment_amount, 'payment_date': '2015-09-13', }) res2 = dues15_notice(req2) res2 # tame flymake # After the final payment, some amount has been paid self.assertEqual(m1.dues15_paid, True) # it has been the full amount self.assertEqual(m1.dues15_amount_paid, D('50')) self.assertEqual(m1.dues15_paid_date, datetime(2015, 9, 13, 0, 0)) # the balance is 0 self.assertEqual(m1.dues15_balance, D('0')) # and the account is balanced. self.assertEqual(m1.dues15_balanced, True)
def test_dues15_notice(self): """ test the dues15 notice view -- acknowledge incoming payments """ self.config.add_route('detail', '/detail/') self.config.add_route('make_dues15_invoice_no_pdf', '/') # prepare test candidate m1 = C3sMember.get_by_id(1) # german normal member m1.membership_accepted = True from c3smembership.views.membership_dues import send_dues15_invoice_email req0 = testing.DummyRequest( matchdict={'member_id': m1.id}) req0.referrer = 'detail' resp0 = send_dues15_invoice_email(req0) resp0 # tame flymake partial_payment_amount = D('10') # here comes the request to test req1 = testing.DummyRequest( matchdict={'member_id': 1}, POST={ 'amount': partial_payment_amount, 'payment_date': '2015-09-11', } ) from c3smembership.views.membership_dues import dues15_notice res1 = dues15_notice(req1) res1 # tame flymake # After the partial payment, some amount has been paid self.assertEqual(m1.dues15_paid, True) # it has been the partial payment amount self.assertEqual(m1.dues15_amount_paid, partial_payment_amount) self.assertEqual(m1.dues15_paid_date, datetime(2015, 9, 11, 0, 0)) # the balance is the original amount subtracted by the partial payment self.assertEqual( m1.dues15_balance, D(m1.dues15_amount) - partial_payment_amount) # and the account is not balanced. self.assertEqual(m1.dues15_balanced, False) # here comes the request to test req2 = testing.DummyRequest( matchdict={'member_id': 1}, POST={ 'amount': D(m1.dues15_amount) - partial_payment_amount, 'payment_date': '2015-09-13', } ) res2 = dues15_notice(req2) res2 # tame flymake # After the final payment, some amount has been paid self.assertEqual(m1.dues15_paid, True) # it has been the full amount self.assertEqual(m1.dues15_amount_paid, D('50')) self.assertEqual(m1.dues15_paid_date, datetime(2015, 9, 13, 0, 0)) # the balance is 0 self.assertEqual(m1.dues15_balance, D('0')) # and the account is balanced. self.assertEqual(m1.dues15_balanced, True)
def test_send_dues15_invoice_email_single(self): """ test the send_dues15_invoice_email view * calculate invoice amount and send invoice email ** to not accepted member ** to accepted member ** to non-existing member (wrong id) ** to same member (just send email, don't create new invoice) ... and also check email texts for * german normal member * english normal member * german investing member * english investing member * german investing legal entity * english investing legal entity """ from pyramid_mailer import get_mailer from c3smembership.views.membership_dues import send_dues15_invoice_email from c3smembership.models import Dues15Invoice _number_of_invoices = len(Dues15Invoice.get_all()) self.config.add_route('toolbox', '/') self.config.add_route('detail', '/') self.config.add_route('make_dues15_invoice_no_pdf', '/') req = testing.DummyRequest() req.matchdict = { 'member_id': '1', } req.referrer = 'detail' res = send_dues15_invoice_email(req) self.assertTrue(res.status_code == 302) self.assertTrue('http://example.com/' in res.headers['Location']) # member 1 not accepted by the board. problem! _number_of_invoices_2 = len(Dues15Invoice.get_all()) assert(_number_of_invoices == _number_of_invoices_2 == 0) # print("_number_of_invoices: {}".format(_number_of_invoices)) m1 = C3sMember.get_by_id(1) m1.membership_accepted = True res = send_dues15_invoice_email(req) # print('#'*60) # print res # print('#'*60) _number_of_invoices_3 = len(Dues15Invoice.get_all()) # print("_number_of_invoices 3: {}".format(_number_of_invoices_3)) assert(_number_of_invoices_3 == 1) # check for outgoing email mailer = get_mailer(req) # print mailer # print mailer.outbox self.assertEqual(len(mailer.outbox), 1) # print mailer.outbox[0].body self.assertTrue( 'Verwendungszweck: C3S-dues2015-0001' in mailer.outbox[0].body) """ now we try to get an id that does not exist """ req2 = testing.DummyRequest() req2.matchdict = { 'member_id': '1234', } req2.referrer = 'detail' res2 = send_dues15_invoice_email(req2) self.assertTrue(res2.status_code == 302) self.assertTrue('http://example.com/' in res2.headers['Location']) """ what if we call that function (and send email) twice? test that no second invoice is created in DB. """ req3 = testing.DummyRequest() req3.matchdict = { 'member_id': '1', } req3.referrer = 'detail' res3 = send_dues15_invoice_email(req3) self.assertTrue(res3.status_code == 302) self.assertTrue('http://example.com/' in res3.headers['Location']) _number_of_invoices_4 = len(Dues15Invoice.get_all()) self.assertEqual(_number_of_invoices_3, _number_of_invoices_4) """ check for email texts """ self.assertEqual(len(mailer.outbox), 2) self.assertTrue( (u'Dein Mitgliedsbeitrag ab Quartal 1 beträgt also 50 Euro.') in mailer.outbox[0].body) # print(mailer.outbox[0].body) self.assertTrue( (u'Dein Mitgliedsbeitrag ab Quartal 1 beträgt also 50 Euro.') in mailer.outbox[1].body) # print(mailer.outbox[1].body) """ send email to * english member, * investing members (de/en), * legal entities (de/en) """ # english normal ##################################################### m2 = C3sMember.get_by_id(2) m2.membership_accepted = True req_en_normal = testing.DummyRequest() req_en_normal.matchdict = { 'member_id': '2', } req_en_normal.referrer = 'detail' res_en_normal = send_dues15_invoice_email(req_en_normal) self.assertTrue(res_en_normal.status_code == 302) self.assertEqual(len(mailer.outbox), 3) # print(mailer.outbox[2].body) self.assertTrue( (u'Please transfer 50 Euro') in mailer.outbox[2].body) # german investing ################################################### m3 = C3sMember.get_by_id(3) m3.membership_accepted = True req_de_investing = testing.DummyRequest() req_de_investing.matchdict = { 'member_id': '3', } req_de_investing.referrer = 'detail' res_de_investing = send_dues15_invoice_email(req_de_investing) self.assertTrue(res_de_investing.status_code == 302) self.assertEqual(len(mailer.outbox), 4) # print(mailer.outbox[3].body) self.assertTrue( (u'Da Du investierendes Mitglied bist') in mailer.outbox[3].body) # english investing ################################################## m4 = C3sMember.get_by_id(4) m4.membership_accepted = True req_en_investing = testing.DummyRequest() req_en_investing.matchdict = { 'member_id': '4', } req_en_investing.referrer = 'detail' res_en_investing = send_dues15_invoice_email(req_en_investing) self.assertTrue(res_en_investing.status_code == 302) self.assertEqual(len(mailer.outbox), 5) # print(mailer.outbox[4].body) self.assertTrue( (u'Since you are an investing member') in mailer.outbox[4].body) # german legal entity ################################################ m5 = C3sMember.get_by_id(5) m5.membership_accepted = True req_de_legalentity = testing.DummyRequest() req_de_legalentity.matchdict = { 'member_id': '5', } req_de_legalentity.referrer = 'detail' res_de_legalentity = send_dues15_invoice_email(req_de_legalentity) self.assertTrue(res_de_legalentity.status_code == 302) self.assertEqual(len(mailer.outbox), 6) # print(mailer.outbox[5].body) self.assertTrue( (u'') in mailer.outbox[5].body) # english legal entity ############################################### m6 = C3sMember.get_by_id(6) m6.membership_accepted = True req_en_legalentity = testing.DummyRequest() req_en_legalentity.matchdict = { 'member_id': '6', } req_en_legalentity.referrer = 'detail' res_en_legalentity = send_dues15_invoice_email(req_en_legalentity) self.assertTrue(res_en_legalentity.status_code == 302) self.assertEqual(len(mailer.outbox), 7) # print(mailer.outbox[6].body) self.assertTrue( (u'Da Musikverlag investierendes Mitglied ist') in mailer.outbox[6].body) self.assertTrue( (u'Für juristische Personen wird empfohlen') in mailer.outbox[6].body)
def test_send_dues15_invoice_email_single(self): """ test the send_dues15_invoice_email view * calculate invoice amount and send invoice email ** to not accepted member ** to accepted member ** to non-existing member (wrong id) ** to same member (just send email, don't create new invoice) ... and also check email texts for * german normal member * english normal member * german investing member * english investing member * german investing legal entity * english investing legal entity """ from pyramid_mailer import get_mailer from c3smembership.views.membership_dues import send_dues15_invoice_email from c3smembership.models import Dues15Invoice _number_of_invoices = len(Dues15Invoice.get_all()) self.config.add_route('toolbox', '/') self.config.add_route('detail', '/') self.config.add_route('make_dues15_invoice_no_pdf', '/') req = testing.DummyRequest() req.matchdict = { 'member_id': '1', } req.referrer = 'detail' res = send_dues15_invoice_email(req) self.assertTrue(res.status_code == 302) self.assertTrue('http://example.com/' in res.headers['Location']) # member 1 not accepted by the board. problem! _number_of_invoices_2 = len(Dues15Invoice.get_all()) assert (_number_of_invoices == _number_of_invoices_2 == 0) # print("_number_of_invoices: {}".format(_number_of_invoices)) m1 = C3sMember.get_by_id(1) m1.membership_accepted = True res = send_dues15_invoice_email(req) # print('#'*60) # print res # print('#'*60) _number_of_invoices_3 = len(Dues15Invoice.get_all()) # print("_number_of_invoices 3: {}".format(_number_of_invoices_3)) assert (_number_of_invoices_3 == 1) # check for outgoing email mailer = get_mailer(req) # print mailer # print mailer.outbox self.assertEqual(len(mailer.outbox), 1) # print mailer.outbox[0].body self.assertTrue( 'Verwendungszweck: C3S-dues2015-0001' in mailer.outbox[0].body) """ now we try to get an id that does not exist """ req2 = testing.DummyRequest() req2.matchdict = { 'member_id': '1234', } req2.referrer = 'detail' res2 = send_dues15_invoice_email(req2) self.assertTrue(res2.status_code == 302) self.assertTrue('http://example.com/' in res2.headers['Location']) """ what if we call that function (and send email) twice? test that no second invoice is created in DB. """ req3 = testing.DummyRequest() req3.matchdict = { 'member_id': '1', } req3.referrer = 'detail' res3 = send_dues15_invoice_email(req3) self.assertTrue(res3.status_code == 302) self.assertTrue('http://example.com/' in res3.headers['Location']) _number_of_invoices_4 = len(Dues15Invoice.get_all()) self.assertEqual(_number_of_invoices_3, _number_of_invoices_4) """ check for email texts """ self.assertEqual(len(mailer.outbox), 2) self.assertTrue( (u'Dein Mitgliedsbeitrag ab Quartal 1 beträgt also 50 Euro.' ) in mailer.outbox[0].body) # print(mailer.outbox[0].body) self.assertTrue( (u'Dein Mitgliedsbeitrag ab Quartal 1 beträgt also 50 Euro.' ) in mailer.outbox[1].body) # print(mailer.outbox[1].body) """ send email to * english member, * investing members (de/en), * legal entities (de/en) """ # english normal ##################################################### m2 = C3sMember.get_by_id(2) m2.membership_accepted = True req_en_normal = testing.DummyRequest() req_en_normal.matchdict = { 'member_id': '2', } req_en_normal.referrer = 'detail' res_en_normal = send_dues15_invoice_email(req_en_normal) self.assertTrue(res_en_normal.status_code == 302) self.assertEqual(len(mailer.outbox), 3) # print(mailer.outbox[2].body) self.assertTrue((u'Please transfer 50 Euro') in mailer.outbox[2].body) # german investing ################################################### m3 = C3sMember.get_by_id(3) m3.membership_accepted = True req_de_investing = testing.DummyRequest() req_de_investing.matchdict = { 'member_id': '3', } req_de_investing.referrer = 'detail' res_de_investing = send_dues15_invoice_email(req_de_investing) self.assertTrue(res_de_investing.status_code == 302) self.assertEqual(len(mailer.outbox), 4) # print(mailer.outbox[3].body) self.assertTrue( (u'Da Du investierendes Mitglied bist') in mailer.outbox[3].body) # english investing ################################################## m4 = C3sMember.get_by_id(4) m4.membership_accepted = True req_en_investing = testing.DummyRequest() req_en_investing.matchdict = { 'member_id': '4', } req_en_investing.referrer = 'detail' res_en_investing = send_dues15_invoice_email(req_en_investing) self.assertTrue(res_en_investing.status_code == 302) self.assertEqual(len(mailer.outbox), 5) # print(mailer.outbox[4].body) self.assertTrue( (u'Since you are an investing member') in mailer.outbox[4].body) # german legal entity ################################################ m5 = C3sMember.get_by_id(5) m5.membership_accepted = True req_de_legalentity = testing.DummyRequest() req_de_legalentity.matchdict = { 'member_id': '5', } req_de_legalentity.referrer = 'detail' res_de_legalentity = send_dues15_invoice_email(req_de_legalentity) self.assertTrue(res_de_legalentity.status_code == 302) self.assertEqual(len(mailer.outbox), 6) # print(mailer.outbox[5].body) self.assertTrue((u'') in mailer.outbox[5].body) # english legal entity ############################################### m6 = C3sMember.get_by_id(6) m6.membership_accepted = True req_en_legalentity = testing.DummyRequest() req_en_legalentity.matchdict = { 'member_id': '6', } req_en_legalentity.referrer = 'detail' res_en_legalentity = send_dues15_invoice_email(req_en_legalentity) self.assertTrue(res_en_legalentity.status_code == 302) self.assertEqual(len(mailer.outbox), 7) # print(mailer.outbox[6].body) self.assertTrue((u'Da Musikverlag investierendes Mitglied ist' ) in mailer.outbox[6].body) self.assertTrue((u'Für juristische Personen wird empfohlen' ) in mailer.outbox[6].body)