Exemplo n.º 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()))
Exemplo n.º 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)))
Exemplo n.º 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'),
        ])
Exemplo n.º 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)))
Exemplo n.º 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)
Exemplo n.º 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,
        )
Exemplo n.º 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')])