def test_minimal_data(self): bill = QRBill( account="CH 44 3199 9123 0008 89012", creditor={ 'name': 'Jane', 'pcode': '1000', 'city': 'Lausanne', }, ) self.assertEqual( bill.qr_data(), 'SPC\r\n0100\r\n1\r\nCH4431999123000889012\r\nJane\r\n\r\n\r\n' '1000\r\nLausanne\r\nCH\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nCHF\r\n' '\r\n\r\n\r\n\r\n\r\n\r\n\r\nNON\r\n\r\n' )
def test_spec_example1(self): bill = QRBill( account='CH4431999123000889012', creditor={ 'name': 'Robert Schneider AG', 'street': 'Rue du Lac', 'house_num': '1268', 'pcode': '2501', 'city': 'Biel', 'country': 'CH', }, amount='1949.75', currency='CHF', due_date='2019-10-31', debtor={ 'name': 'Pia-Maria Rutschmann-Schnyder', 'street': 'Grosse Marktgasse', 'house_num': '28', 'pcode': '9400', 'city': 'Rorschach', 'country': 'CH', }, ref_number='210000000003139471430009017', extra_infos=( 'Order of 15.09.2019##S1/01/20170309/11/10201409/20/1400' '0000/22/36958/30/CH106017086/40/1020/41/3010')) ''' AP1 – Parameters UV1;1.1;1278564;1A-2F-43-AC-9B-33-21-B0-CC-D4- 28-56;TCXVMKC22;2019-02-10T15: 12:39; 2019-02- 10T15:18:16¶ AP2 – Parameters XY2;2a-2.2r;_R1-CH2_ConradCH-2074-1_33 50_2019-03-13T10:23:47_16,99_0,00_0,00_ 0,00_0,00_+8FADt/DQ=_1== ''' self.assertEqual( bill.qr_data(), 'SPC\r\n0100\r\n1\r\nCH4431999123000889012\r\nS\r\nRobert Schneider AG\r\n' 'Rue du Lac\r\n1268\r\n2501\r\nBiel\r\nCH\r\n\r\n\r\n\r\n\r\n\r\n\r\n' '1949.75\r\nCHF\r\nS\r\nPia-Maria Rutschmann-Schnyder\r\nGrosse Marktgasse\r\n' '28\r\n9400\r\nRorschach\r\nCH\r\nQRR\r\n210000000003139471430009017\r\n' 'Order of 15.09.2019##S1/01/20170309/11/10201409/20/14000000/22/36958/30/CH106017086' '/40/1020/41/3010\r\nEPD') with tempfile.NamedTemporaryFile(suffix='.svg') as fh: bill.as_svg(fh.name) content = fh.read().decode() self.assertTrue( content.startswith('<?xml version="1.0" encoding="utf-8" ?>'))
def test_minimal_data(self): bill = QRBill( account="CH 53 8000 5000 0102 83664", creditor={ 'name': 'Jane', 'pcode': '1000', 'city': 'Lausanne', }, ) self.assertEqual( bill.qr_data(), 'SPC\r\n0200\r\n1\r\nCH5380005000010283664\r\nS\r\nJane\r\n\r\n\r\n' '1000\r\nLausanne\r\nCH\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nCHF\r\n' '\r\n\r\n\r\n\r\n\r\n\r\n\r\nNON\r\n\r\n\r\nEPD' ) with tempfile.NamedTemporaryFile(suffix='.svg') as fh: bill.as_svg(fh.name) content = fh.read().decode() self.assertTrue(content.startswith('<?xml version="1.0" encoding="utf-8" ?>'))
def test_spec_example1(self): bill = QRBill( account='CH4431999123000889012', creditor={ 'name': 'Robert Schneider AG', 'street': 'Rue du Lac', 'house_num': '1268', 'pcode': '2501', 'city': 'Biel', 'country': 'CH', }, amount='1949.7', currency='CHF', due_date='2019-10-31', debtor={ 'name': 'Pia-Maria Rutschmann-Schnyder', 'street': 'Grosse Marktgasse', 'house_num': '28', 'pcode': '9400', 'city': 'Rorschach', 'country': 'CH', }, ref_number='210000000003139471430009017', extra_infos=( 'Order of 15.09.2019##S1/01/20170309/11/10201409/20/1400' '0000/22/36958/30/CH106017086/40/1020/41/3010')) ''' AP1 – Parameters UV1;1.1;1278564;1A-2F-43-AC-9B-33-21-B0-CC-D4- 28-56;TCXVMKC22;2019-02-10T15: 12:39; 2019-02- 10T15:18:16¶ AP2 – Parameters XY2;2a-2.2r;_R1-CH2_ConradCH-2074-1_33 50_2019-03-13T10:23:47_16,99_0,00_0,00_ 0,00_0,00_+8FADt/DQ=_1== ''' self.assertEqual( bill.qr_data(), 'SPC\r\n0200\r\n1\r\nCH4431999123000889012\r\nS\r\nRobert Schneider AG\r\n' 'Rue du Lac\r\n1268\r\n2501\r\nBiel\r\nCH\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n' '1949.70\r\nCHF\r\nS\r\nPia-Maria Rutschmann-Schnyder\r\nGrosse Marktgasse\r\n' '28\r\n9400\r\nRorschach\r\nCH\r\nQRR\r\n210000000003139471430009017\r\n' 'Order of 15.09.2019##S1/01/20170309/11/10201409/20/14000000/22/36958/30/CH106017086' '/40/1020/41/3010\r\nEPD') with tempfile.NamedTemporaryFile(suffix='.svg') as fh: bill.as_svg(fh.name) content = fh.read().decode() self.assertTrue( content.startswith('<?xml version="1.0" encoding="utf-8" ?>')) font8 = 'font-family="helvetica" font-size="8" font-weight="bold"' font10 = 'font-family="helvetica" font-size="10"' # Test the Payable by section: self.assertIn( '<text {font8} {x} y="52.5mm">Payable by</text>' '<text {font10} {x} y="56.0mm">Pia-Maria Rutschmann-Schnyder</text>' '<text {font10} {x} y="59.5mm">Grosse Marktgasse 28</text>' '<text {font10} {x} y="63.0mm">CH-9400 Rorschach</text>' '<text {font8} {x} y="67.5mm">Payable by </text>' '<text {font10} {x} y="71.0mm">31.10.2019</text>'.format( font8=font8, font10=font10, x='x="137.0mm"'), content) # IBAN formatted self.assertIn( '<text {font10} x="5mm" y="18.5mm">CH44 3199 9123 0008 8901 2</text>' .format(font10=font10), content) # amount formatted self.assertIn( '<text {font10} x="17.0mm" y="85mm">1 949.70</text>'.format( font10=font10), content)