Beispiel #1
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)
Beispiel #2
0
 def setUp(self):
     self.BaseSetUp()
     location = LocationFactory()
     self.mock_vendor = Vendor(id=1,
                               created_at=datetime.now(),
                               updated_at=datetime.now(),
                               name='Mock vendor',
                               address='Mock address',
                               tel='',
                               contact_person='Mock person',
                               is_active=True,
                               location_id=location.id)
     self.mock_vendor_engagement = VendorEngagement(
         id=1,
         created_at=datetime.now(),
         updated_at=datetime.now(),
         location_id=location.id,
         start_date=datetime.now(),
         end_date=datetime.now(),
         status=1,
         termination_reason='Mock reason',
         vendor=self.mock_vendor)
     self.mock_menu = Menu(is_deleted=False,
                           date=datetime.now(),
                           meal_period='',
                           location_id=location.id,
                           main_meal_id=1,
                           allowed_side=1,
                           allowed_protein=1,
                           side_items='',
                           protein_items='',
                           vendor_engagement_id=1,
                           created_at=datetime.now(),
                           updated_at=datetime.now())
     self.mock_vendor_engagement = VendorEngagement(
         id=1,
         created_at=datetime.now(),
         updated_at=datetime.now(),
         location_id=location.id,
         start_date=datetime.now(),
         end_date=datetime.now(),
         status=1,
         termination_reason='Mock reason',
         vendor=self.mock_vendor,
         menus=[
             self.mock_menu,
         ])
     self.mock_vendor_engagement_no_child = VendorEngagement(
         id=1,
         created_at=datetime.now(),
         updated_at=datetime.now(),
         location_id=location.id,
         start_date=datetime.now(),
         end_date=datetime.now(),
         status=1,
         termination_reason='Mock reason',
         vendor=self.mock_vendor)
 def setUp(self):
     self.BaseSetUp()
     self.repo = OrderRepo()
     self.location = LocationFactory()
     self.meal_item = MealItemFactory(location_id=self.location.id)
     self.vendor_engagement = VendorEngagementFactory(
         location_id=self.location.id)
     self.menu = MenuFactory(location_id=self.location.id,
                             main_meal_id=self.meal_item.id,
                             vendor_engagement_id=self.vendor_engagement.id)
    def test_creating_vendor_gets_logged(self):
        vendor = Vendor(
            name='Your name',
            address='Your Address',
            tel='12345678',
            contact_person='Contact Person',
            location=LocationFactory(),
        )
        vendor.save()

        activity = [
            activity.action_details for activity in Activity.query.all()
        ]

        self.assertTrue("created" in activity[0])
    def test_hard_delete_on_vendor_model(self):
        vendor = Vendor(
            name='Your name',
            address='Your Address',
            tel='12345678',
            contact_person='Contact Person',
            location=LocationFactory(),
        )

        vendor.save()
        vendor_id = vendor.id

        vendor.delete()

        self.assertEquals(Vendor.query.get(vendor_id), None)
Beispiel #6
0
    def test_new_meal_session_method_returns_new_meal_session_object(self):
        location = LocationFactory()
        meal_session = MealSessionFactory(location=location)

        new_meal_session = self.repo.new_meal_session(
            name=meal_session.name,
            start_time=meal_session.start_time,
            stop_time=meal_session.stop_time,
            date=meal_session.date,
            location_id=meal_session.location.id)

        self.assertIsInstance(new_meal_session, MealSession)
        self.assertEqual(new_meal_session.location_id,
                         meal_session.location_id)
        self.assertEqual(new_meal_session.name, meal_session.name)
        self.assertEqual(new_meal_session.start_time, meal_session.start_time)
        self.assertEqual(new_meal_session.stop_time, meal_session.stop_time)
    def test_create_user_succeeds(self, mock_request_params,
                                  mock_get_location):
        location = LocationFactory()
        role = RoleFactory(name='test_role')

        with self.app.app_context():
            mock_get_location.return_value = location.id

            mock_request_params.return_value = [
                "Joseph", "Serunjogi", None, None, "-LXTuXlk2W4Gskt8KTte",
                role.id
            ]
            user_controller = UserController(self.request_context)

            # Act
            result = user_controller.create_user()

            # Assert
            assert result.status_code == 201
            assert result.get_json()['msg'] == 'OK'
Beispiel #8
0
    def test_create_user_fails_for_existing_user(
        self,
        mock_user_role_repo_new_user_role,
        # mock_user_repo_new_user,
        mock_user_repo_exists,
        mock_role_repo_find_first,
        mock_request_params,
        mock_get_location,
    ):
        location = LocationFactory()
        role = RoleFactory(name="test_role")

        with self.app.app_context():
            mock_get_location.return_value = location.id
            mock_role_repo_find_first.return_value = self.mock_role
            mock_user_repo_exists.return_value = self.mock_user2
            # mock_user_repo_new_user.return_value = None
            mock_user_role_repo_new_user_role.return_value = self.mock_user_role
            mock_request_params.return_value = [
                "Joseph",
                "Serunjogi",
                self.mock_user2.email,
                role.id,
                "male",
                str(datetime.now()),
                1,
                "password",
            ]
            user_controller = UserController(self.request_context)

            # Act
            result = user_controller.create_user()
            print(result)
            print(result.get_json())
            # Assert
            assert result.status_code == 400
            assert (
                result.get_json()["msg"] ==
                f"User with email '{self.mock_user2.email}' already exists")
Beispiel #9
0
    def test_new_menu_method_returns_new_menu_object(self):
        location = LocationFactory()
        meal_item = MealItemFactory.create(location=location)
        vendor_engagement = VendorEngagementFactory()
        menu = MenuFactory(location=location,
                           main_meal_id=meal_item.id,
                           vendor_engagement=vendor_engagement)

        new_menu = self.repo.new_menu(menu.date.strftime('%Y-%m-%d'),
                                      menu.meal_period, menu.main_meal_id,
                                      menu.allowed_side, menu.allowed_protein,
                                      [1, 2], [3, 4], vendor_engagement.id,
                                      location.id)

        self.assertIsInstance(new_menu, Menu)
        self.assertEqual(new_menu.allowed_protein, menu.allowed_protein)
        self.assertEqual(new_menu.allowed_side, menu.allowed_protein)
        self.assertEqual(new_menu.meal_period, menu.meal_period)

        self.assertIsInstance(new_menu, Menu)
        self.assertEqual(new_menu.allowed_protein, menu.allowed_protein)
        self.assertEqual(new_menu.allowed_side, menu.allowed_protein)
        self.assertEqual(new_menu.meal_period, menu.meal_period)
Beispiel #10
0
    def test_create_user_succeeds(
        self,
        mock_user_role_repo_new_user_role,
        mock_user_repo_new_user,
        mock_user_repo_exists,
        mock_role_repo_find_first,
        mock_request_params,
        mock_get_location,
    ):
        location = LocationFactory()
        role = RoleFactory(name="test_role")

        with self.app.app_context():
            mock_get_location.return_value = location.id
            mock_role_repo_find_first.return_value = self.mock_role
            mock_user_repo_exists.return_value = None
            mock_user_repo_new_user.return_value = self.mock_user2
            mock_user_role_repo_new_user_role.return_value = self.mock_user_role
            mock_request_params.return_value = [
                "Joseph",
                "Serunjogi",
                "*****@*****.**",
                role.id,
                "male",
                str(datetime.now()),
                1,
                "password",
            ]
            user_controller = UserController(self.request_context)

            # Act
            result = user_controller.create_user()

            # Assert
            assert result.status_code == 201
            assert result.get_json()["msg"] == "OK"
 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 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'
Beispiel #13
0
 def setUp(self):
     self.BaseSetUp()
     self.repo = VendorEngagementRepo()
     self.location = LocationFactory()
     self.vendor = VendorFactory()
 def setUp(self):
     self.BaseSetUp()
     self.repo = VendorRepo()
     self.rating_repo = VendorRatingRepo()
     self.location = LocationFactory()