예제 #1
0
 def test_brew_coffee_start(self):
     response = self.client.brew(self.pot.get_absolute_url(),
                                 content_type=HTCPCP_COFFEE_CONTENT,
                                 data='start')
     self.assertContains(response, b'Brewing', status_code=202)
     self.assertEqual(
         response['Alternates'],
         utils.render_alternates_header(utils.build_alternates()))
예제 #2
0
    def test_brew_no_pot(self):
        response = self.client.brew('/', data='start')
        self.assertEqual(response.status_code, 300)

        self.assertEqual(
            response['Alternates'],
            utils.render_alternates_header(
                utils.build_alternates(index_pot=None)))
예제 #3
0
    def test_build_alternates_for_pot_with_tea(self):
        pot = Pot.objects.get(pk=3)
        alternates = list(utils.build_alternates(index_pot=pot))

        self.assertEqual(alternates, [
            ('/pot-3/darjeeling/', 'message/teapot'),
            ('/pot-3/earl-grey/', 'message/teapot'),
            ('/pot-3/peppermint/', 'message/teapot'),
        ])
예제 #4
0
 def test_brew_tea_index(self):
     response = self.client.brew(self.pot.get_absolute_url(),
                                 content_type=HTCPCP_TEA_CONTENT,
                                 data='start')
     self.assertContains(response, b'Options', status_code=300)
     self.assertEqual(
         response['Alternates'],
         utils.render_alternates_header(
             utils.build_alternates(index_pot=self.pot)))
예제 #5
0
    def test_coffee_cycle(self):
        response = self.client.brew(
            '/',
            content_type=HTCPCP_COFFEE_CONTENT,
            data='start',
        )

        self.assertEqual(
            response['Alternates'],
            utils.render_alternates_header(utils.build_alternates()))
        self.assertContains(response, b'Options', status_code=300)

        # Start brewing a beverage
        response = self.client.brew(
            self.pot.get_absolute_url(),
            content_type=HTCPCP_COFFEE_CONTENT,
            data='start',
        )
        self.assertContains(response, b'Brewing', status_code=202)

        # Attempt to start a new beverage in a busy pot
        response = self.client.brew(
            self.pot.get_absolute_url(),
            content_type=HTCPCP_COFFEE_CONTENT,
            data='start',
        )
        self.assertContains(response, b'Pot is busy', status_code=503)

        # Stop brewing (no milk to be poured)
        response = self.client.brew(
            self.pot.get_absolute_url(),
            content_type=HTCPCP_COFFEE_CONTENT,
            data='stop',
        )
        self.assertContains(response, b'Finished', status_code=201)

        # Ensure that the beverage cannot be stopped twice
        response = self.client.brew(
            self.pot.get_absolute_url(),
            content_type=HTCPCP_COFFEE_CONTENT,
            data='stop',
        )
        self.assertContains(response,
                            b'No beverage is being brewed by this pot',
                            status_code=400)

        # Ensure that the pot is now free to begin a new beverage
        response = self.client.brew(
            self.pot.get_absolute_url(),
            content_type=HTCPCP_COFFEE_CONTENT,
            data='start',
        )
        self.assertContains(response, b'Brewing', status_code=202)
예제 #6
0
    def test_build_alternates_no_pot(self):
        alternates = list(utils.build_alternates())

        expected = [
            ('/pot-1/', 'message/coffeepot'),
            ('/pot-2/', 'message/coffeepot'),
            ('/pot-3/darjeeling/', 'message/teapot'),
            ('/pot-3/earl-grey/', 'message/teapot'),
            ('/pot-3/peppermint/', 'message/teapot'),
            ('/pot-4/', 'message/coffeepot'),
            ('/pot-4/darjeeling/', 'message/teapot'),
            ('/pot-4/earl-grey/', 'message/teapot'),
        ]

        self.assertEqual(
            alternates,
            expected,
        )
예제 #7
0
    def test_build_alternates_for_pot_no_tea(self):
        pot = Pot.objects.get(pk=1)
        alternates = list(utils.build_alternates(index_pot=pot))

        self.assertEqual(alternates, [('/pot-1/', 'message/coffeepot')])