示例#1
0
    def test_filter_and_count_method_returns_correct_count(self):
        VendorFactory.create()
        VendorFactory.create()

        result = self.repo.filter_and_count()

        self.assertEqual(result, 2)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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, [])
示例#5
0
    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
示例#6
0
    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)
示例#7
0
    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)
示例#8
0
    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)
示例#9
0
 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)
示例#10
0
    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)
示例#11
0
    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)
示例#14
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)
示例#17
0
 def setUp(self):
     self.BaseSetUp()
     self.repo = VendorEngagementRepo()
     self.location = LocationFactory()
     self.vendor = VendorFactory()