Beispiel #1
0
    def test_right_case(self, mock_parse_receipt, mock_from_string_to_json):
        test_receipt = Receipt()
        test_receipt.ecash_total_sum = 2
        test_receipt.cash_total_sum = 30
        test_receipt.total_sum = 32
        test_receipt.purchase_date = 'my_date'
        test_receipt.items = [
            Item(name='item_name', price=13, quantity=10, sum=130)
        ]
        mock_parse_receipt.return_value = test_receipt
        r = Receipt()
        r.raw = 'test_raw'

        _enrich_receipt_items_from_json(r)

        mock_from_string_to_json.assert_called_once_with('test_raw')
        self.assertEqual(r.ecash_total_sum, 2)
        self.assertEqual(r.cash_total_sum, 30)
        self.assertEqual(r.total, 32)
        self.assertEqual(r.purchase_date, 'my_date')
        self.assertEqual(len(r.items), 1)
        self.assertEqual(r.items[0].name, 'item_name')
        self.assertEqual(r.items[0].price, 13)
        self.assertEqual(r.items[0].quantity, 10)
        self.assertEqual(r.items[0].sum, 130)
Beispiel #2
0
    def test_wrong_case_parse_receipt(self, mock_parse_receipt,
                                      mock_from_string_to_json):
        test_receipt = Receipt()
        test_receipt.ecash_total_sum = 2
        test_receipt.cash_total_sum = 30
        test_receipt.items = [
            Item(name='item_name', price=13, quantity=10, sum=130)
        ]
        mock_parse_receipt.return_value = test_receipt
        mock_from_string_to_json.return_value = 'test_json'
        mock_parse_receipt.side_effect = AssertionError
        r = Receipt()
        r.raw = 'test_raw'

        _enrich_receipt_items_from_json(r)

        mock_from_string_to_json.assert_called_once_with('test_raw')
        mock_parse_receipt.assert_called_once_with('test_json')
        self.assertIsNone(r.ecash_total_sum)
        self.assertIsNone(r.cash_total_sum)
        self.assertTrue(r.items is None
                        or isinstance(r.items, list) and len(r.items) == 0)