Esempio n. 1
0
 def test_set_address_with_failing_geolocation(self):
     session_id = 'someId'
     requester = Requester('login', 'pw', 'first', 'last')
     requester_id = self.dao.store_one(requester.to_db_object())
     requester.id = requester_id
     self.requester_handler.active_user_sessions[session_id] = requester
     with self.assertRaises(UnexpectedNumberOfLocationsForAddressError):
         self.requester_handler.set_address('Unknown Street 33', '12345',
                                            'Nomansland', session_id)
Esempio n. 2
0
 def test_create_request_correctly(self):
     session_id = 'sessionId'
     requester = Requester('login', 'pw', 'first', 'last',
                           '5f81ae776db502d353a84fdf')
     self.requester_handler.active_user_sessions[session_id] = requester
     item_1 = Item('item1', 42.42, 'category', '5f7c28c6e979c6a33a1f3f79',
                   ProductDetails('', {}), Image('', ''))
     item_2 = Item('item2', 13.37, 'category', '5f7c28c6e979c6a33a1f3f79',
                   ProductDetails('', {}), Image('', ''))
     item_1_id = self.items_dao.store_one(item_1.to_db_object())
     item_2_id = self.items_dao.store_one(item_2.to_db_object())
     item_1_amount = 5
     item_2_amount = 3
     request_items = [{
         'id': item_1_id,
         'amount': item_1_amount
     }, {
         'id': item_2_id,
         'amount': item_2_amount
     }]
     request_id = self.request_handler.create_request(
         request_items, session_id)
     requests = self.requests_dao.get_all()
     self.assertEqual(len(requests), 1)
     self.assertEqual(str(requests[0]['_id']), request_id)
     self.assertEqual(str(requests[0]['requester']), requester.id)
     self.assertEqual(requests[0]['volunteer'], None)
     self.assertEqual(requests[0]['status'], RequestStatus.CREATED)
     self.assertEqual(str(requests[0]['items'][0]['id']), item_1_id)
     self.assertEqual(requests[0]['items'][0]['amount'], item_1_amount)
     self.assertEqual(str(requests[0]['items'][1]['id']), item_2_id)
     self.assertEqual(requests[0]['items'][1]['amount'], item_2_amount)
Esempio n. 3
0
 def test_set_address_correctly(self):
     session_id = 'someId'
     requester = Requester('login', 'pw', 'first', 'last')
     requester_id = self.dao.store_one(requester.to_db_object())
     requester.id = requester_id
     self.requester_handler.active_user_sessions[session_id] = requester
     self.requester_handler.set_address('Some Street 42', '1337', 'Funland',
                                        session_id)
     self.assertEqual(len(self.dao.get_all()), 1)
     self.assertEqual(self.dao.get_all()[0]['address']['street'],
                      'Some Street 42')
     self.assertEqual(self.dao.get_all()[0]['address']['zip'], '1337')
     self.assertEqual(self.dao.get_all()[0]['address']['country'],
                      'Funland')
     self.assertEqual(
         self.dao.get_all()[0]['address']['coordinates']['lat'], 42.0)
     self.assertEqual(
         self.dao.get_all()[0]['address']['coordinates']['lng'], 13.37)
Esempio n. 4
0
 def test_create_request_with_unknown_item_id(self):
     session_id = 'sessionId'
     requester = Requester('login', 'pw', 'first', 'last', 'userId')
     self.requester_handler.active_user_sessions[session_id] = requester
     item_id = '5f7c28c6e979c6a33a1f3f79'
     with self.assertRaises(ObjectIdNotFoundError):
         self.request_handler.create_request([{
             'id': item_id,
             'amount': 3
         }], session_id)
Esempio n. 5
0
 def test_submit_request_with_unknown_object_id(self):
     session_id = 'sessionId'
     requester = Requester('login', 'pw', 'first', 'last',
                           '5f81ae776db502d353a84fdf')
     self.requester_handler.active_user_sessions[session_id] = requester
     self.assertEqual(len(self.requests_dao.get_all()), 0)
     request_id = '5f7c28c6e979c6a33a1f3f79'
     with self.assertRaises(ObjectIdNotFoundError):
         self.request_handler.submit_request(request_id, session_id)
     self.assertEqual(len(self.requests_dao.get_all()), 0)
Esempio n. 6
0
 def test_submit_request_with_missing_delivery_address(self):
     session_id = 'sessionId'
     requester_id = '5f81ae776db502d353a84fdf'
     requester = Requester('login', 'pw', 'first', 'last', requester_id)
     self.requester_handler.active_user_sessions[session_id] = requester
     request = Request(requester=requester_id,
                       status=RequestStatus.CREATED,
                       items=[],
                       volunteer=None)
     request_id = self.requests_dao.store_one(request.to_db_object())
     with self.assertRaises(MissingDeliveryAddressError):
         self.request_handler.submit_request(request_id, session_id)
Esempio n. 7
0
 def test_submit_request_with_other_status_than_created(self):
     session_id = 'sessionId'
     requester_id = '5f81ae776db502d353a84fdf'
     requester = Requester('login', 'pw', 'first', 'last', requester_id)
     self.requester_handler.active_user_sessions[session_id] = requester
     request = Request(requester=requester_id,
                       status=RequestStatus.IN_PROGRESS,
                       items=[],
                       volunteer=None,
                       submission_date=datetime.now())
     request_id = self.requests_dao.store_one(request.to_db_object())
     with self.assertRaises(UnexpectedRequestStatusError):
         self.request_handler.submit_request(request_id, session_id)
Esempio n. 8
0
 def test_submit_request_of_other_requester(self):
     session_id = 'sessionId'
     requester_id = '5f81ae776db502d353a84fdf'
     other_requester_id = '5f7c28c6e979c6a33a1f3f79'
     requester = Requester('login', 'pw', 'first', 'last', requester_id)
     self.requester_handler.active_user_sessions[session_id] = requester
     request = Request(requester=other_requester_id,
                       status=RequestStatus.CREATED,
                       items=[],
                       volunteer=None)
     request_id = self.requests_dao.store_one(request.to_db_object())
     with self.assertRaises(UnauthorizedAccessError):
         self.request_handler.submit_request(request_id, session_id)
     self.assertEqual(
         self.request_handler.from_db_object(
             self.requests_dao.get_all()[0]).status, RequestStatus.CREATED)
Esempio n. 9
0
 def test_submit_request_without_address_correctly(self):
     session_id = 'sessionId'
     requester_id = '5f81ae776db502d353a84fdf'
     address = self.address_handler(self.locator.valid_street_1,
                                    self.locator.valid_zip_1,
                                    self.locator.valid_country_1)
     requester = Requester('login', 'pw', 'first', 'last', requester_id,
                           address)
     self.requester_handler.active_user_sessions[session_id] = requester
     request = Request(requester=requester_id,
                       status=RequestStatus.CREATED,
                       items=[],
                       volunteer=None)
     request_id = self.requests_dao.store_one(request.to_db_object())
     self.request_handler.submit_request(request_id, session_id)
     request = self.request_handler.from_db_object(
         self.requests_dao.get_all()[0])
     self.assertEqual(request.status, RequestStatus.SUBMITTED)
     self.assertEqual(request.delivery_address, address)
     self.assertIsNot(request.submission_date, None)
     self.assertTrue(type(request.submission_date) == datetime)
Esempio n. 10
0
 def test_get_requesters_own_requests_correctly(self):
     session_id = 'sessionId'
     requester_id = '5f7c2d96e48e242b81178822'
     other_requester_id = '5f81ae36fa3b02a743177500'
     requester = Requester('login', 'pw', 'first', 'last', requester_id)
     self.requester_handler.active_user_sessions[session_id] = requester
     item = Item('item', 42.42, 'category', '5f7c28c6e979c6a33a1f3f79',
                 ProductDetails('', {}), Image('', ''))
     item_id = self.items_dao.store_one(item.to_db_object())
     item.id = item_id
     request_1 = Request(requester=requester_id,
                         status=RequestStatus.CREATED,
                         items=[],
                         volunteer=None)
     request_2 = Request(requester=requester_id,
                         status=RequestStatus.IN_PROGRESS,
                         items=[(item, 3)],
                         volunteer='5f81ae776db502d353a84fdf',
                         submission_date=datetime.now())
     request_3 = Request(requester=other_requester_id,
                         status=RequestStatus.PAID,
                         items=[(item, 1)],
                         volunteer='5f81ae776db502d353a84fdf',
                         submission_date=datetime.now())
     request_1_id = self.requests_dao.store_one(request_1.to_db_object())
     request_2_id = self.requests_dao.store_one(request_2.to_db_object())
     request_3_id = self.requests_dao.store_one(request_3.to_db_object())
     requests = self.request_handler.get_requesters_own_requests(session_id)
     self.assertEqual(len(requests), 2)
     self.assertIn(request_1_id, [request['id'] for request in requests])
     self.assertIn(request_2_id, [request['id'] for request in requests])
     self.assertEqual(
         len([r for r in requests if r['id'] == request_2_id][0]['items']),
         1)
     self.assertEqual([r for r in requests if r['id'] == request_2_id
                       ][0]['items'][0]['item']['id'], item_id)