示例#1
0
 def test_get_order_info_account_not_found(self):
     mock_order = MockModel(id=12)
     self.view.request.dbsession.query_return_values = {
         Order: mock_order,
         Product.id: MockModel(id=25),
         Account.name: exc.SQLAlchemyError
     }
     self.assertEqual(
         {'status': f'account not found for order id {mock_order.id}'},
         self.view.get_order_info())
示例#2
0
 def test_get_account_info(self):
     mock_acc = MockModel(name='Abc', number='123')
     self.view.request.dbsession.return_value = MockQuery(first_=mock_acc)
     self.assertEqual(
         {
             'account_name': mock_acc.name,
             'account_number': mock_acc.number
         }, self.view.get_account_info())
示例#3
0
 def test_get_order_info(self):
     mock_order = MockModel(id=12, number=5)
     mock_product = MockModel(id=25)
     mock_account = MockModel(name='acc345')
     query_return_values = {
         Order: mock_order,
         Product.id: mock_product,
         Account.name: mock_account
     }
     self.view.request.dbsession.query_return_values = query_return_values
     expected_output = {
         'status': 'ok',
         'order_number': mock_order.number,
         'product_id': mock_product[0],
         'account_name': mock_account[0],
     }
     self.assertEqual(expected_output, self.view.get_order_info())
示例#4
0
 def test_get_orders_for_account_with_product_char_falsey(self):
     mock_orders = [
         MockModel(**{
             'id': ind,
             'reference': ref
         }) for ind, ref in enumerate(['ab', 'cd'])
     ]
     self.view.request.dbsession.return_value = MockQuery(
         all_=mock_orders, )
     self.assertEqual({'orders': [f'{a[0]} - {a[1]}' for a in mock_orders]},
                      self.view.get_orders_for_account())
示例#5
0
 def test_get_account_and_product_number_lookup_fail(self):
     acc_name, acc_num = 'foo', '242'
     self.view.request.dbsession.side_effect = [
         MockQuery(one_=MockModel(name=acc_name, acc_num=acc_num)),
         MockQuery(raise_exc=exc.SQLAlchemyError)
     ]
     self.assertEqual(
         {
             'account_name': acc_name,
             'account_number': acc_num,
             'product_number': None
         }, self.view.get_account_and_product_number())
 def test_get_account_and_product_number_with_mocked_product_query(self):
     self.view.request.params = {'account_id': self.accounts[0].id}
     mock_product = MockModel(id=32)
     self.view.request.dbsession = PartialMockDbSession(
         query_return_values={Product.number: mock_product},
         dbsession=self.session
     )
     self.assertEqual(
         {'account_name': self.accounts[0].name,
          'account_number': self.accounts[0].number,
          'product_number': mock_product[0]},
         self.view.get_account_and_product_number()
     )
示例#7
0
 def test_get_account_and_product_number(self):
     acc_name, acc_num = 'foo', '242'
     pn = '123'
     self.view.request.dbsession.side_effect = [
         MockQuery(one_=MockModel(name=acc_name, acc_num=acc_num)),
         MockQuery(one_=[pn])
     ]
     self.assertEqual(
         {
             'account_name': acc_name,
             'account_number': acc_num,
             'product_number': pn
         }, self.view.get_account_and_product_number())
 def test_get_account_and_product_number_with_mocked_account_query(self):
     self.view.request.params = {'account_id': self.accounts[0].id}
     acc_data = {'name': 'foo', 'acc_num': 45}
     mock_account = MockModel(**acc_data)
     self.view.request.dbsession = PartialMockDbSession(
         query_return_values={Account.number.label('acc_num'): mock_account},
         dbsession=self.session
     )
     self.assertEqual(
         {'account_name': acc_data['name'],
          'account_number': acc_data['acc_num'],
          'product_number': None},
         self.view.get_account_and_product_number()
     )
示例#9
0
 def test_get_orders_for_account_with_product_char_truthy(self):
     mock_orders = [
         MockModel(**{
             'id': ind,
             'reference': ref
         }) for ind, ref in enumerate(['ab', 'cd'])
     ]
     mock_products = [
         MockModel(**{
             'id': ind,
             'number': num
         }) for ind, num in enumerate(['123', '345'])
     ]
     self.view.request.dbsession.side_effect = [
         MockQuery(all_=mock_orders),
         MockQuery(all_=mock_products)
     ]
     self.view.request.params.update({'product_char': '2'})
     self.assertEqual(
         {
             'orders': [f'{a[0]} - {a[1]}' for a in mock_orders],
             'product_results': [f'{a[0]} - {a[1]}' for a in mock_products]
         }, self.view.get_orders_for_account())
 def test_get_orders_for_account_order_ids_query_mocked(self):
     self.view.request.params.update({
         'product_char': self.products[0].number[0]
     })
     mocked_order_results = [MockModel(id=i, reference=s)
                             for i, s in enumerate(['ab', 'bc', 'cd'])]
     self.view.request.dbsession = PartialMockDbSession(
         query_return_values={Order.id: mocked_order_results},
         dbsession=self.session
     )
     expected_output = {
         'orders': [f'{a.id} - {a.reference}' for a in mocked_order_results],
         'product_results':
             [f'{a.id} - {a.number}' for a in self.products if
              self.view.request.params['product_char'] in a.number]
     }
     self.assertEqual(expected_output,
                      self.view.get_orders_for_account())
 def test_get_orders_for_account_product_results_query_mocked(self):
     self.view.request.params.update({
         'account_name': self.accounts[0].name,
         'product_char': self.products[0].number[0]
     })
     mocked_product_results = [MockModel(id=i, number=s)
                               for i, s in enumerate(['12', '34', '56'])]
     self.view.request.dbsession = PartialMockDbSession(
         query_return_values={Product.id: mocked_product_results},
         dbsession=self.session
     )
     expected_output = {
         'orders': [f'{a.id} - {a.reference}' for a in self.orders
                    if a.account_id == self.accounts[0].id],
         'product_results':
             [f'{a.id} - {a.number}' for a in mocked_product_results]
     }
     self.assertEqual(expected_output,
                      self.view.get_orders_for_account())
示例#12
0
 def setUp(self):
     self.mock_account = MockModel(number=123, name='foo')