class FlagChecksPanelTestCase(TestCase): def setUp(self): self.request = RequestFactory().get('/') self.toolbar = DebugToolbar(self.request) self.toolbar.stats = {} self.panel = self.toolbar.get_panel_by_id('FlagChecksPanel') @override_settings(FLAGS={'MYFLAG': [('boolean', True)]}) def test_recording(self): self.assertEqual(len(self.panel.checks), 0) self.panel.enable_instrumentation() flag_state('MYFLAG') self.panel.disable_instrumentation() self.assertEqual(len(self.panel.checks), 1) response = self.panel.process_request(self.request) self.panel.generate_stats(self.request, response) checks = self.panel.get_stats()['checks'] self.assertIn('MYFLAG', checks) self.assertEqual([ True, ], checks['MYFLAG'])
class BaseTestCase(TestCase): panel_id = None def setUp(self): super().setUp() self._get_response = lambda request: HttpResponse() self.request = rf.get("/") self.toolbar = DebugToolbar(self.request, self.get_response) self.toolbar.stats = {} if self.panel_id: self.panel = self.toolbar.get_panel_by_id(self.panel_id) self.panel.enable_instrumentation() else: self.panel = None def tearDown(self): if self.panel: self.panel.disable_instrumentation() super().tearDown() def get_response(self, request): return self._get_response(request) def assertValidHTML(self, content): parser = html5lib.HTMLParser() parser.parseFragment(content) if parser.errors: msg_parts = ["Invalid HTML:"] lines = content.split("\n") for position, errorcode, datavars in parser.errors: msg_parts.append(" %s" % html5lib.constants.E[errorcode] % datavars) msg_parts.append(" %s" % lines[position[0] - 1]) raise self.failureException("\n".join(msg_parts))
class FlagsPanelTestCase(TestCase): def setUp(self): self.request = RequestFactory().get("/") self.get_response = lambda req: HttpResponse() self.toolbar = DebugToolbar(self.request, self.get_response) self.toolbar.stats = {} self.panel = self.toolbar.get_panel_by_id("FlagsPanel") @override_settings(FLAGS={"MYFLAG": [("boolean", True)]}) def test_flags_panel_has_flags(self): response = self.panel.process_request(self.request) self.panel.generate_stats(self.request, response) flags = self.panel.get_stats()["flags"] self.assertIn("MYFLAG", [f.name for f in flags]) self.assertIn("enabled", self.panel.content)
class FlagsPanelTestCase(TestCase): def setUp(self): self.request = RequestFactory().get('/') self.toolbar = DebugToolbar(self.request) self.toolbar.stats = {} self.panel = self.toolbar.get_panel_by_id('FlagsPanel') @override_settings(FLAGS={'MYFLAG': [('boolean', True)]}) def test_flags_panel_has_flags_without_middleware(self): response = self.panel.process_request(self.request) self.panel.generate_stats(self.request, response) flags = self.panel.get_stats()['flags'] self.assertIn('MYFLAG', [f.name for f in flags]) self.assertIn('enabled', self.panel.content) @override_settings(FLAGS={'MYFLAG': [('boolean', True)]}) def test_flags_panel_has_flags_with_middleware(self): self.middleware = FlagConditionsMiddleware() self.middleware.process_request(self.request) response = self.panel.process_request(self.request) self.panel.generate_stats(self.request, response) flags = self.panel.get_stats()['flags'] self.assertIn('MYFLAG', [f.name for f in flags])
class FlagChecksPanelTestCase(TestCase): def setUp(self): self.request = RequestFactory().get("/") self.toolbar = DebugToolbar(self.request) self.toolbar.stats = {} self.panel = self.toolbar.get_panel_by_id("FlagChecksPanel") @override_settings(FLAGS={"MYFLAG": [("boolean", True)]}) def test_recording(self): self.assertEqual(len(self.panel.checks), 0) self.panel.enable_instrumentation() flag_state("MYFLAG") self.panel.disable_instrumentation() self.assertEqual(len(self.panel.checks), 1) response = self.panel.process_request(self.request) self.panel.generate_stats(self.request, response) checks = self.panel.get_stats()["checks"] self.assertIn("MYFLAG", checks) self.assertEqual([True], checks["MYFLAG"])
class BaseTestCase(TestCase): panel_id = None def setUp(self): super().setUp() self._get_response = lambda request: HttpResponse() self.request = rf.get("/") self.toolbar = DebugToolbar(self.request, self.get_response) self.toolbar.stats = {} if self.panel_id: self.panel = self.toolbar.get_panel_by_id(self.panel_id) self.panel.enable_instrumentation() else: self.panel = None def tearDown(self): if self.panel: self.panel.disable_instrumentation() super().tearDown() def get_response(self, request): return self._get_response(request) def assertValidHTML(self, content, msg=None): parser = html5lib.HTMLParser() parser.parseFragment(self.panel.content) if parser.errors: default_msg = ["Content is invalid HTML:"] lines = content.split("\n") for position, errorcode, datavars in parser.errors: default_msg.append(" %s" % html5lib.constants.E[errorcode] % datavars) default_msg.append(" %s" % lines[position[0] - 1]) msg = self._formatMessage(msg, "\n".join(default_msg)) raise self.failureException(msg)