def test_get_card_feed(): nubank_client = Nubank(client=MockHttpClient()) nubank_client.authenticate_with_qr_code('12345678912', 'hunter12', 'some-uuid') feed = nubank_client.get_card_feed() assert feed['as_of'] == '2017-09-09T06:50:22.323Z' assert feed['customer_id'] == 'abcde-fghi-jklmn-opqrst-uvxz' assert feed['_links']['updates']['href'] == 'https://prod-s0-webapp-proxy.nubank.com.br/api/proxy/updates_123' assert feed['_links']['next']['href'] == 'https://prod-s0-webapp-proxy.nubank.com.br/api/proxy/next_123' events = feed['events'] assert len(events) == 1 assert events[0]['description'] == 'Shopping Iguatemi' assert events[0]['category'] == 'transaction' assert events[0]['amount'] == 700 assert events[0]['time'] == '2017-09-09T02:03:55Z' assert events[0]['title'] == 'transporte' assert events[0]['id'] == 'abcde-fghi-jklmn-opqrst-uvxz' assert events[0]['details']['lat'] == -12.9818258 assert events[0]['details']['lon'] == -38.4652058 assert events[0]['details']['subcategory'] == 'card_present' assert events[0]['href'] == 'nuapp://transaction/abcde-fghi-jklmn-opqrst-uvxz' assert events[0]['_links']['self']['href'] == 'https://prod-s0-webapp-proxy.nubank.com.br/api/proxy/_links_123'
def test_authenticate_with_qr_code_succeeds(): nubank_client = Nubank(client=MockHttpClient()) nubank_client.authenticate_with_qr_code('12345678912', 'hunter12', 'some-uuid') assert nubank_client._feed_url == 'https://mocked-proxy-url/api/proxy/events_123' assert nubank_client._client.get_header('Authorization') == 'Bearer access_token_123'
def test_should_generate_boleto(): nubank_client = Nubank(client=MockHttpClient()) nubank_client.authenticate_with_qr_code('12345678912', 'hunter12', 'some-uuid') assert nubank_client.create_boleto(200.50) == '123131321231231.2313212312.2131231.21332123'
def test_should_create_money_request(): nubank_client = Nubank(client=MockHttpClient()) nubank_client.authenticate_with_qr_code('12345678912', 'hunter12', 'some-uuid') assert nubank_client.create_money_request(200) == 'https://some.tld/path1/path2'
def test_get_qr_code(monkeypatch): nubank_client = Nubank(client=MockHttpClient()) uid, qr = nubank_client.get_qr_code() assert uid != '' assert isinstance(qr, QRCode)
def test_authenticate_with_refresh_token(): nubank_client = Nubank(client=MockHttpClient()) nubank_client.authenticate_with_refresh_token('token', 'some-file.p12') assert nubank_client._feed_url == 'https://mocked-proxy-url/api/proxy/events_123' assert nubank_client._client.get_header('Authorization') == 'Bearer access_token_123'
def test_get_bill_details(): nubank_client = Nubank(client=MockHttpClient()) nubank_client.authenticate_with_qr_code('12345678912', 'hunter12', 'some-uuid') bill_mock = { '_links': {'self': {'href': 'https://mocked-proxy-url/api/bills/abcde-fghi-jklmn-opqrst-uvxz'}}} bill_response = nubank_client.get_bill_details(bill_mock) bill = bill_response['bill'] assert bill['_links']['barcode'][ 'href'] == 'https://mocked-proxy-url/api/bills/abcde-fghi-jklmn-opqrst-uvxz/boleto/barcode' assert bill['_links']['boleto_email'][ 'href'] == 'https://mocked-proxy-url/api/bills/abcde-fghi-jklmn-opqrst-uvxz/boleto/email' assert bill['_links']['invoice_email'][ 'href'] == 'https://mocked-proxy-url/api/bills/abcde-fghi-jklmn-opqrst-uvxz/invoice/email' assert bill['_links']['self'][ 'href'] == 'https://mocked-proxy-url/api/bills/abcde-fghi-jklmn-opqrst' assert bill['account_id'] == 'abcde-fghi-jklmn-opqrst-uvxz' assert bill['auto_debit_failed'] == False assert bill['barcode'] == '' assert bill['id'] == 'abcde-fghi-jklmn-opqrst-uvxz' assert bill['line_items'][0]['amount'] == 2390 assert bill['line_items'][0]['category'] == 'Eletronicos' assert bill['line_items'][0]['charges'] == 1 assert bill['line_items'][0]['href'] == 'nuapp://transaction/abcde-fghi-jklmn-opqrst-uvxz' assert bill['line_items'][0]['id'] == 'abcde-fghi-jklmn-opqrst-uvxz' assert bill['line_items'][0]['index'] == 0 assert bill['line_items'][0]['post_date'] == '2015-09-09' assert bill['line_items'][0]['title'] == 'Mercadopago Mlivre' assert bill['linha_digitavel'] == '' assert bill['payment_method'] == 'boleto' assert bill['state'] == 'overdue' assert bill['status'] == 'paid' assert bill['summary']['adjustments'] == '0' assert bill['summary']['close_date'] == '2015-09-25' assert bill['summary']['due_date'] == '2015-10-10' assert bill['summary']['effective_due_date'] == '2015-10-13' assert bill['summary']['expenses'] == '78.8000' assert bill['summary']['fees'] == '0' assert bill['summary']['interest'] == 0 assert bill['summary']['interest_charge'] == '0' assert bill['summary']['interest_rate'] == '0.0775' assert bill['summary']['interest_reversal'] == '0' assert bill['summary']['international_tax'] == '0' assert bill['summary']['late_fee'] == '0.02' assert bill['summary']['late_interest_rate'] == '0.0875' assert bill['summary']['minimum_payment'] == 7005 assert bill['summary']['open_date'] == '2015-07-23' assert bill['summary']['paid'] == 7880 assert bill['summary']['past_balance'] == 0 assert bill['summary']['payments'] == '0' assert bill['summary']['precise_minimum_payment'] == '70.054500' assert bill['summary']['precise_total_balance'] == '78.8000' assert bill['summary']['previous_bill_balance'] == '0' assert bill['summary']['tax'] == '0' assert bill['summary']['total_accrued'] == '0' assert bill['summary']['total_balance'] == 7880 assert bill['summary']['total_credits'] == '0' assert bill['summary']['total_cumulative'] == 7880 assert bill['summary']['total_financed'] == '0' assert bill['summary']['total_international'] == '0' assert bill['summary']['total_national'] == '78.8000' assert bill['summary']['total_payments'] == '0'
def nubank_client(): client = Nubank(client=MockHttpClient()) client.authenticate_with_qr_code('12345678912', 'hunter12', 'some-uuid') return client
def test_post_invalid_url_should_throw_exception(): client = MockHttpClient() with pytest.raises(NuException): client.post('invalid.url', {})