def test_filter_and_count_method_returns_correct_count(self): VendorFactory.create() VendorFactory.create() result = self.repo.filter_and_count() self.assertEqual(result, 2)
def test_order_by_method_returns_correct_order(self): VendorFactory.create() vendor_2 = VendorFactory.create() result = self.repo.order_by('created_at') self.assertEqual(result.count(), 2) self.assertNotEqual(result.first(), vendor_2)
def test_filter_all_method_returns_paginated_results(self): vendor_1 = VendorFactory.create() vendor_2 = VendorFactory.create() paginated_result = self.repo.filter_all() self.assertEqual(len(paginated_result.items), 2) self.assertEqual(paginated_result.items[0], vendor_1) self.assertEqual(paginated_result.items[1], vendor_2)
def test_method_check_exists_else_where_returns_populated_list(self): VendorFactory.create(name="Andela Eats") vendor_1 = VendorFactory.create() results = self.repo.check_exists_else_where(Vendor, 'name', "Andela Eats", 'id', vendor_1.id) self.assertIsInstance(results, list) self.assertNotEqual(results, [])
def test_method_check_exists_else_where_returns_string(self): VendorFactory.create(name="Andela Eats") vendor_1 = VendorFactory.create() results = self.repo.check_exists_else_where(Vendor, 'names', "Andela Eats", 'id', vendor_1.id) self.assertIsInstance(results, str) assert "An error occurred during the check" in results
def test_get_unpaginated_asc_orders_ascending(self): vendor_1 = VendorFactory.create() vendor_2 = VendorFactory.create() vendor_names = sorted([vendor.name for vendor in [vendor_1, vendor_2]]) results = self.repo.get_unpaginated_asc(Vendor.name) self.assertEqual(vendor_names[0], results[0].name) self.assertEqual(vendor_names[1], results[1].name)
def test_filter_by_desc_method_returns_descending_ordered_results(self): vendor_1 = VendorFactory.create() vendor_2 = VendorFactory.create() vendor_names = sorted([vendor.name for vendor in [vendor_1, vendor_2]], reverse=True) results = self.repo.filter_by_desc(Vendor.name) self.assertEqual(vendor_names[0], results.items[0].name) self.assertEqual(vendor_names[1], results.items[1].name)
def test_get_first_item_method_only_returns_that(self): vendor_1 = VendorFactory() vendor_2 = VendorFactory.create() vendor_ = self.repo.get_first_item() self.assertIsInstance(vendor_, Vendor) self.assertEqual(vendor_1.id, vendor_.id) self.assertEqual(vendor_1.tel, vendor_.tel) self.assertEqual(vendor_1.address, vendor_.address) self.assertNotEqual(vendor_2.id, vendor_.id)
def setUp(self): self.BaseSetUp() self.repo = VendorRatingRepo() self.location = LocationFactory() self.vendor = VendorFactory() self.engagement = VendorEngagementFactory(location_id=self.location.id, vendor_id=self.vendor.id)
def test_repo_get_method_returns_value_by_id(self): vendor = VendorFactory.create() vendor_ = self.repo.get(vendor.id) self.assertIsInstance(vendor_, Vendor) self.assertEqual(vendor.id, vendor_.id) self.assertEqual(vendor.tel, vendor_.tel) self.assertEqual(vendor.address, vendor_.address)
def test_method_check_exists_else_where_returns_empty_list(self): vendor_1 = VendorFactory.create() results = self.repo.check_exists_else_where(Vendor, 'name', vendor_1.name, 'id', vendor_1.id) self.assertIsInstance(results, list) self.assertEqual(results, [])
def test_update_method_updates_model_values(self): vendor = VendorFactory() updates = {'name': 'Jays Place', 'tel': '09012343', 'contact_person': 'Joseph Cobhams'} vendor_ = self.repo.update(vendor, **updates) self.assertIsInstance(vendor_, Vendor) self.assertEqual(vendor_.name, updates['name']) self.assertEqual(vendor_.tel, updates['tel']) self.assertEqual(vendor_.contact_person, updates['contact_person'])
def test_new_vendor_method_returns_new_vendor_object(self): vendor = VendorFactory.build() new_vendor = self.repo.new_vendor(vendor.name, vendor.address, vendor.tel, vendor.is_active, vendor.contact_person, vendor.location_id) self.assertIsInstance(new_vendor, Vendor) self.assertEqual(vendor.name, new_vendor.name) self.assertEqual(vendor.tel, new_vendor.tel) self.assertEqual(vendor.address, new_vendor.address) self.assertEqual(vendor.contact_person, new_vendor.contact_person) self.assertIsNot(new_vendor.id, 0)
def test_count_method_returns_correct_count_as_integer(self): VendorFactory.create_batch(10) count = self.repo.count() self.assertIsInstance(count, int) self.assertEqual(count, 10)
def test_create_order_rating_ok_response( self, mock_vendor_engagement_repo_get, mock_meal_item_repo_get, mock_auth_user, mock_vendor_rating_controller_request_params, mock_order_repo_get, mock_vendor_repo_update_average_rating ): '''Test create_order_rating when order has already been rated. ''' # Arrange vendor = VendorFactory() location = LocationFactory() vendor_engagement = VendorEngagementFactory() meal_item = MealItemFactory() menu = MenuFactory() with self.app.app_context(): mock_meal_item = MealItem( id=1, created_at=datetime.now(), updated_at=datetime.now(), meal_type='main', name='Mock meal', image='', location_id=location.id ) mock_vendor_engagement = VendorEngagement( id=1, created_at=datetime.now(), updated_at=datetime.now(), vendor_id=vendor.id, location_id=location.id, start_date=datetime.now(), end_date=(datetime.now() + timedelta(days=5)), status=1, termination_reason='Mock reason' ) mock_order = Order( id=1, created_at=datetime.now(), updated_at=datetime.now(), user_id='user_id', date_booked_for=datetime.now(), date_booked=datetime.now(), channel='web', meal_period='lunch', order_status='booked', has_rated=False, menu_id=menu.id, location_id=location.id ) mock_vendor_rating_controller_request_params.return_value = ( 2, meal_item.id, vendor_engagement.id, 'Mock comment', 3, '2019-02-06', 'web' ) mock_auth_user.return_value = 1 mock_meal_item_repo_get.return_value = mock_meal_item mock_vendor_engagement_repo_get.return_value = \ mock_vendor_engagement mock_order_repo_get.return_value = mock_order vendor_rating_controller = VendorRatingController( self.request_context ) mock_vendor_repo_update_average_rating.return_value = None # Act result = vendor_rating_controller.create_order_rating() # Assert assert result.status_code == 201 assert result.get_json()['msg'] == 'Rating successful'
def setUp(self): self.BaseSetUp() self.fake = Faker() vendor = VendorFactory() location = LocationFactory() self.mock_vendor_engagement = VendorEngagement( id=1, created_at=datetime.now(), updated_at=datetime.now(), vendor_id=vendor.id, location_id=location.id, start_date=datetime.now(), end_date=datetime.now(), status=1, termination_reason=self.fake.text()) self.mock_rating = VendorRating(id=1, created_at=datetime.now(), updated_at=datetime.now(), vendor_id=vendor.id, user_id=1, comment=self.fake.text(), service_date=datetime.now(), rating=1.2, channel='web', type_id=1, engagement_id=1, main_meal_id=1) self.mock_vendor_with_dependants = Vendor( id=1, created_at=datetime.now(), updated_at=datetime.now(), is_deleted=False, name=self.fake.name(), address=self.fake.address(), tel=self.fake.phone_number(), contact_person=self.fake.name(), is_active=True, location_id=location.id, ratings=[ self.mock_rating, ], engagements=[ self.mock_vendor_engagement, ]) self.mock_vendor = Vendor(id=1, created_at=datetime.now(), updated_at=datetime.now(), is_deleted=False, name=self.fake.name(), address=self.fake.address(), tel=self.fake.phone_number(), contact_person=self.fake.name(), is_active=True, location_id=location.id) self.mock_deleted_vendor = Vendor(id=1, created_at=datetime.now(), updated_at=datetime.now(), is_deleted=True, name=self.fake.name(), address=self.fake.address(), tel=self.fake.phone_number(), contact_person=self.fake.name(), is_active=True, location_id=location.id)
def setUp(self): self.BaseSetUp() self.repo = VendorEngagementRepo() self.location = LocationFactory() self.vendor = VendorFactory()