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()))
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)))
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'), ])
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)))
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)
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, )
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')])