def test_mutation(self): bithandler = BitHandler(0, ("FLAG_0", "FLAG_1", "FLAG_2", "FLAG_3")) self.assertEquals(bool(bithandler.FLAG_0), False) self.assertEquals(bool(bithandler.FLAG_1), False) self.assertEquals(bool(bithandler.FLAG_2), False) self.assertEquals(bool(bithandler.FLAG_3), False) bithandler = BitHandler(bithandler | 1, bithandler._keys) self.assertEquals(bool(bithandler.FLAG_0), True) self.assertEquals(bool(bithandler.FLAG_1), False) self.assertEquals(bool(bithandler.FLAG_2), False) self.assertEquals(bool(bithandler.FLAG_3), False) bithandler ^= 3 self.assertEquals(int(bithandler), 2) self.assertEquals(bool(bithandler & 1), False) bithandler.FLAG_0 = False self.assertEquals(bithandler.FLAG_0, False) bithandler.FLAG_1 = True self.assertEquals(bithandler.FLAG_0, False) self.assertEquals(bithandler.FLAG_1, True) bithandler.FLAG_2 = False self.assertEquals(bithandler.FLAG_0, False) self.assertEquals(bithandler.FLAG_1, True) self.assertEquals(bithandler.FLAG_2, False)
def test_defaults(self): bithandler = BitHandler(0, ("FLAG_0", "FLAG_1", "FLAG_2", "FLAG_3")) # Default value of 0. self.assertEquals(int(bithandler), 0) # Test bit numbers. self.assertEquals(int(bithandler.FLAG_0.number), 0) self.assertEquals(int(bithandler.FLAG_1.number), 1) self.assertEquals(int(bithandler.FLAG_2.number), 2) self.assertEquals(int(bithandler.FLAG_3.number), 3) # Negative test non-existant key. self.assertRaises(AttributeError, lambda: bithandler.FLAG_4) # Test bool(). self.assertEquals(bool(bithandler.FLAG_0), False) self.assertEquals(bool(bithandler.FLAG_1), False) self.assertEquals(bool(bithandler.FLAG_2), False) self.assertEquals(bool(bithandler.FLAG_3), False)
def test_create_render_bitfield_template_tag_singleton(self, mock_loader): template = Template( "{% for obj in flags %}Hello: {{ obj.str }}\n{% endfor %}") mock_loader.get_template.return_value = DjangoTemplate( template, mock_loader) func = flag_utils.create_render_bitfield_template_tag( { "p": { "str": "person", "singleton": True }, "a": { "str": "animal" } }, "test.html") flag_obj = BitHandler(1 | 2, ["a", "p"]) self.assertEqual(func(flag_obj), "Hello: person\n")
def test_create_render_bitfield_template_tag_no_values(self): # empty flag definition, so all values will be "invalid" func = flag_utils.create_render_bitfield_template_tag({}) flag_obj = BitHandler(1 | 2, ["new", "read"]) self.assertEqual(func(flag_obj).strip(), " ")
def styleguide(request): now = timezone.now() + timedelta(-1) domain = mock.Mock(domain="example.com") # create a bunch of mocked inboxes inboxes = [ mock.Mock( inbox="qwerty", domain=domain, flags=BitHandler(0, ["new"]), last_activity=now, form=InboxEditForm(request), ), mock.Mock( inbox="qwerty", domain=domain, flags=BitHandler(1, ["disabled"]), last_activity=now, form=False, ), mock.Mock( inbox="qwerty", domain=domain, flags=BitHandler(1 | 2, ["new", "pinned"]), last_activity=now, form=False, ), ] # emails emails = [ mock.Mock( inbox=inboxes[0], flags=BitHandler(1, ["important"]), received_date=now, ), mock.Mock( inbox=inboxes[0], flags=BitHandler(0, ["important"]), received_date=now, ), ] # attachments attachments = [ mock.Mock(id=0, filename=("a" * 100), content_type="blah/blah", get_children=[]), mock.Mock(id=0, filename="a", content_type=None, get_children=[]), ] context = { "inboxes": inboxes, "emails": emails, "attachments": attachments, "form": Form(), "message_types": [(k, get_level_tags()[v]) for k, v in DEFAULT_LEVELS.items() if k != 'DEBUG'], } return TemplateResponse(request, 'inboxen/styleguide.html', context)
def test_empty(self): flag_obj = BitHandler(2, ["new", "read"]) output = inboxen_flags.render_flags(flag_obj) self.assertEqual(output.strip(), " ")
def test_invert(self): flag_obj = BitHandler(3, ["new", "read"]) output = inboxen_flags.render_flags(flag_obj) self.assertNotIn("Unread message", output) self.assertNotIn("label-info", output)
def test_no_error(self): flag_obj = BitHandler(6, ["new", "read", "somefakeflag", "someother"]) inboxen_flags.render_flags(flag_obj)