Example #1
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())
Example #2
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())
Example #3
0
 def test_create_hourly_records(self, req_get_patch, get_hourly_data_patch,
                                model_patch):
     req_get_patch.return_value = namedtuple('req_get', 'content')('')
     site_id = 5
     dbsession = MockDbSession(side_effect=[
         MockQuery(raise_exc=SQLAlchemyError),
         MockQuery(one_=[0]),
         MockQuery(one_=[site_id]),
     ])
     hourly_data = {'foo': 'bar'}
     get_hourly_data_patch.side_effect = [{}, hourly_data]
     create_hourly_records(dbsession)
     model_patch.assert_called_with(site_id=site_id, **hourly_data)
     self.assertEqual([model_patch.return_value], dbsession.added_records)
Example #4
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())
Example #5
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())
Example #6
0
    def test_get_aurn_sites_all_geo_not_geo_limit(self, haversine_patch,
                                                  get_query_patch):
        site_items = ['b', 'c', 'a'] + ['s' for _ in range(20)]
        sort_keys = ['3', '1', '2'] + ['s' for _ in range(20)]
        haversine_patch.side_effect = [s for s in sort_keys]
        get_query_patch.return_value = MockQuery(all_=site_items)

        output = Query.get_aurn_sites({}, {}, ['lat', 'lon'])
        self.assertEqual(
            list(
                sorted(site_items,
                       key=lambda x: sort_keys[site_items.index(x)])), output)
Example #7
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())
Example #8
0
 def test_resolve_hourly_data_where_not_site_ids(self, get_times_patch,
                                                 aurn_hourly_patch,
                                                 get_query_patch,
                                                 get_filter_dict_patch,
                                                 get_sites_patch):
     get_sites_patch.return_value = [namedtuple('site', 'id')(5)]
     get_times_patch.return_value = 1, 3
     aurn_hourly_patch.time = 2
     aurn_hourly_patch.site_id = namedtuple('sa_obj', 'in_')(lambda x: x)
     test_val = 'expected_return_val'
     mock_query = MockQuery(all_=test_val)
     get_query_patch.return_value = mock_query
     self.assertEqual(test_val,
                      Query.resolve_hourly_data('root', 'info', foo='bar'))
     self.assertEqual(
         (aurn_hourly_patch.time >= get_times_patch.return_value[0],
          aurn_hourly_patch.time <= get_times_patch.return_value[1],
          [a.id for a in get_sites_patch.return_value]),
         mock_query.filter_args)
Example #9
0
 def test_resolve_hourly_data_where_site_ids_provided(
         self, get_times_patch, aurn_hourly_patch, get_query_patch,
         get_filter_dict_patch, get_sites_patch):
     get_times_patch.return_value = 1, 3
     aurn_hourly_patch.time = 2
     aurn_hourly_patch.site_id = namedtuple('sa_obj', 'in_')(lambda x: x)
     sites_query_ids = [5, 6, 7]
     get_sites_patch.return_value = [
         namedtuple('site', 'id')(i) for i in sites_query_ids
     ]
     test_val = 'expected_return_val'
     mock_query = MockQuery(all_=test_val)
     get_query_patch.return_value = mock_query
     site_ids_queried = [3, 5, 6, 25]
     self.assertEqual(
         test_val,
         Query.resolve_hourly_data('root',
                                   'info',
                                   site_ids=site_ids_queried))
     self.assertEqual(
         (aurn_hourly_patch.time >= get_times_patch.return_value[0],
          aurn_hourly_patch.time <= get_times_patch.return_value[1],
          [i for i in sites_query_ids if i in site_ids_queried]),
         mock_query.filter_args)
Example #10
0
 def test_account_task(self, db_session_patch):
     db_session_patch.return_value = MockQuery(first_=self.mock_account)
     self.assertEqual(
         f'Account: {self.mock_account.number} - {self.mock_account.name}',
         account_task())
Example #11
0
 def test_get_aurn_sites_not_all_geo(self, get_query_patch):
     site_items = 'all'
     get_query_patch.return_value = MockQuery(all_=site_items)
     output = Query.get_aurn_sites({}, {}, [0, 0])
     self.assertEqual(site_items, output)
Example #12
0
 def test_get_account_info_account_not_found(self):
     self.view.request.dbsession.return_value = MockQuery(
         first_=None, raise_exc=exc.SQLAlchemyError)
     self.assertEqual({}, self.view.get_account_info())