def test_wrong_option_selected_returns_correct_error_template(self, *args):
        buff = ['rate', 'breakfast', '10', '5']

        rate_context = Helper.get_rate_template_context(buff, self.user_id)

        self.assertEqual(rate_context, {'context': {'option_count': 3},
                                        'template': 'invalid_option'})
    def test_wrong_meal_selected_returns_correct_error_template(self, *args):
        buff = ['rate', 'asdflkj', '2', '5']

        rate_context = Helper.get_rate_template_context(buff, self.user_id)

        self.assertEqual(rate_context, {'template': 'invalid_meal',
                                        'context': {}})
    def test_user_gets_weekend_rate_error_on_weekend(self, *args):
        buff = ['rate', 'breakfast', '2', '5']
        user_id = 'U0774N56J'
        rate_context = Helper.get_rate_template_context(buff, user_id)

        self.assertEqual(rate_context, {'template': 'weekend_rate_error',
                                        'context': {}})
    def test_invalid_rating_returns_correct_error_template(self, *args):
        negative_rate_buff = ['rate', 'breakfast', '2', '-1']
        zero_rate_buff = ['rate', 'breakfast', '2', '0']
        above_rate_buff = ['rate', 'breakfast', '2', '6']

        negative_rate_context = Helper.get_rate_template_context(
            negative_rate_buff, self.user_id)
        zero_rate_context = Helper.get_rate_template_context(
            zero_rate_buff, self.user_id)
        above_rate_context = Helper.get_rate_template_context(
            above_rate_buff, self.user_id)

        self.assertEqual(negative_rate_context, {'context': {},
                                                 'template': 'invalid_rating'})
        self.assertEqual(zero_rate_context, {'context': {},
                                             'template': 'invalid_rating'})
        self.assertEqual(above_rate_context, {'context': {},
                                              'template': 'invalid_rating'})
    def test_valid_rate_returns_correct_template(self, *args):
        buff = ['rate', 'breakfast', '2', '5']

        rate_context = Helper.get_rate_template_context(buff, self.user_id)

        self.assertEqual(rate_context, {'template': 'rating_response',
                                        'context': {}})
        CustomSQL.query.assert_called_with(
            'SELECT id FROM menu_table WHERE meal = (%s) AND day = (%s) AND week = (%s) AND option = (%s)', ('breakfast', 'monday', '1', '2'))
    def test_multiple_check_template_rendered_if_rate_count_is_greater_than_zero(self, *args):
        buff = ['rate', 'breakfast', '2', '5']

        rate_context = Helper.get_rate_template_context(buff, self.user_id)
        self.assertEqual(rate_context, {'template': 'multiple_rating',
                                        'context': {}})