コード例 #1
0
ファイル: test_bitfield.py プロジェクト: sugusbs/sentry
    def test_update(self):
        instance = BitFieldTestModel.objects.create(flags=0)
        self.assertFalse(instance.flags.FLAG_0)

        BitFieldTestModel.objects.filter(pk=instance.pk).update(
            flags=bitor(F("flags"), BitFieldTestModel.flags.FLAG_1))
        instance = BitFieldTestModel.objects.get(pk=instance.pk)
        self.assertTrue(instance.flags.FLAG_1)

        BitFieldTestModel.objects.filter(pk=instance.pk).update(
            flags=bitor(F("flags"), ((~BitFieldTestModel.flags.FLAG_0
                                      | BitFieldTestModel.flags.FLAG_3))))
        instance = BitFieldTestModel.objects.get(pk=instance.pk)
        self.assertFalse(instance.flags.FLAG_0)
        self.assertTrue(instance.flags.FLAG_1)
        self.assertTrue(instance.flags.FLAG_3)
        self.assertFalse(
            BitFieldTestModel.objects.filter(flags=F("flags").bitor(
                BitFieldTestModel.flags.FLAG_0)).exists())

        BitFieldTestModel.objects.filter(pk=instance.pk).update(
            flags=bitand(F("flags"), ~BitFieldTestModel.flags.FLAG_3))
        instance = BitFieldTestModel.objects.get(pk=instance.pk)
        self.assertFalse(instance.flags.FLAG_0)
        self.assertTrue(instance.flags.FLAG_1)
        self.assertFalse(instance.flags.FLAG_3)
コード例 #2
0
ファイル: tests.py プロジェクト: NuttasitBoonwat/sentry
    def test_update(self):
        instance = BitFieldTestModel.objects.create(flags=0)
        self.assertFalse(instance.flags.FLAG_0)

        BitFieldTestModel.objects.filter(pk=instance.pk).update(
            flags=bitor(F('flags'), BitFieldTestModel.flags.FLAG_1)
        )
        instance = BitFieldTestModel.objects.get(pk=instance.pk)
        self.assertTrue(instance.flags.FLAG_1)

        BitFieldTestModel.objects.filter(pk=instance.pk).update(
            flags=bitor(
                F('flags'), ((~BitFieldTestModel.flags.FLAG_0 | BitFieldTestModel.flags.FLAG_3))
            )
        )
        instance = BitFieldTestModel.objects.get(pk=instance.pk)
        self.assertFalse(instance.flags.FLAG_0)
        self.assertTrue(instance.flags.FLAG_1)
        self.assertTrue(instance.flags.FLAG_3)
        self.assertFalse(
            BitFieldTestModel.objects.filter(flags=BitFieldTestModel.flags.FLAG_0).exists()
        )

        BitFieldTestModel.objects.filter(pk=instance.pk).update(
            flags=bitand(F('flags'), ~BitFieldTestModel.flags.FLAG_3)
        )
        instance = BitFieldTestModel.objects.get(pk=instance.pk)
        self.assertFalse(instance.flags.FLAG_0)
        self.assertTrue(instance.flags.FLAG_1)
        self.assertFalse(instance.flags.FLAG_3)
コード例 #3
0
 def queryset(self, request, queryset):
     _filter = dict((p, bitor(F(p), v))
                    for p, v in six.iteritems(self.used_parameters))
     try:
         return queryset.filter(**_filter)
     except ValidationError as e:
         raise IncorrectLookupParameters(e)
コード例 #4
0
ファイル: tests.py プロジェクト: joshowen/django-bitfield
    def test_update_with_handler(self):
        instance = BitFieldTestModel.objects.create(flags=0)
        self.assertFalse(instance.flags.FLAG_0)

        instance.flags.FLAG_1 = True

        BitFieldTestModel.objects.filter(pk=instance.pk).update(flags=bitor(F('flags'), instance.flags))
        instance = BitFieldTestModel.objects.get(pk=instance.pk)
        self.assertTrue(instance.flags.FLAG_1)
コード例 #5
0
    def test_update_with_handler(self):
        instance = BitFieldTestModel.objects.create(flags=0)
        self.assertFalse(instance.flags.FLAG_0)

        instance.flags.FLAG_1 = True

        BitFieldTestModel.objects.filter(pk=instance.pk).update(flags=bitor(F('flags'), instance.flags))
        instance = BitFieldTestModel.objects.get(pk=instance.pk)
        self.assertTrue(instance.flags.FLAG_1)
コード例 #6
0
ファイル: admin.py プロジェクト: pasala91/test
 def queryset(self, request, queryset):
     _filter = {p: bitor(F(p), v) for p, v in self.used_parameters.items()}
     try:
         return queryset.filter(**_filter)
     except ValidationError as e:
         raise IncorrectLookupParameters(e)
コード例 #7
0
ファイル: admin.py プロジェクト: duanshuaimin/sentry
 def queryset(self, request, queryset):
     filter = dict((p, bitor(F(p), v)) for p, v in six.iteritems(self.used_parameters))
     try:
         return queryset.filter(**filter)
     except ValidationError as e:
         raise IncorrectLookupParameters(e)