コード例 #1
0
ファイル: models.py プロジェクト: Alir3z4/django-base64field
    def _ek(self):
        if self.ek: return self.ek

        if not self.ek and self.pk:
            return base64.encode(self.pk)

        return self.ek
コード例 #2
0
ファイル: models.py プロジェクト: RLC85/django-base64field
    def _ek(self):
        if self.ek: return self.ek

        if not self.ek and self.pk:
            return base64.encode(self.pk)

        return self.ek
コード例 #3
0
    def __fnv_hash(key):
        h = 2166136261

        for k in key:
            h = (h * 16777619) ^ ord(k)

        # Return 8 bit URL
        return base64.encode(h % 281474976710656)
コード例 #4
0
    def generate_encoded_pk(self, sender, **kwargs):
        instance = kwargs['instance']
        field_name = instance._base64field_name

        if getattr(instance, field_name) in ['', None]:
            from django.utils.baseconv import base64

            obj_pk = instance.pk

            sender._default_manager.filter(pk=obj_pk).update(
                **{field_name: base64.encode(obj_pk)})
コード例 #5
0
ファイル: fields.py プロジェクト: Alir3z4/django-base64field
    def generate_encoded_pk(self, sender, **kwargs):
        instance = kwargs['instance']
        field_name = instance._base64field_name

        if getattr(instance, field_name) in ['', None]:
            from django.utils.baseconv import base64

            obj_pk = instance.pk

            sender._default_manager.filter(pk=obj_pk).update(
                **{field_name: base64.encode(obj_pk)}
            )
コード例 #6
0
    def test_field_not_none_after_saved(self):
        """
         After `Planet` has been created, `Planet.ek` will be available
        on next time of getting `planet` from database.

        Why?
        ----
             Because after `planet` get created, `post_save` signal of `Planet` will
            emitted, This is where `ek` field will be set from ``base64``
            encoded value based on `pk`.
        """
        planet = Planet.objects.create()
        base64_key = base64.encode(planet.pk)
        same_planet_but_fresh = Planet.objects.get(pk=planet.pk)

        self.assertEqual(same_planet_but_fresh.ek, base64_key)
        self.assertNotEqual(planet.ek, same_planet_but_fresh.ek)
コード例 #7
0
ファイル: uuid.py プロジェクト: artscoop/scoop
def uuid_bits(bits=64):
    """
    Renvoyer un pseudo-UUID sur n bits, en base64
    
    Note: 6 bits = 1 caractère

    :param bits: nombre de bits de l'UUID. Entre 16 et 1024
    :returns: une chaîne en base64 représentant une valeur 'uuid' sur n bits
    """
    bits = min(1024, max(16, bits))
    val_shift = 1
    total = 0
    while bits > 128:
        value = str(uuid.uuid4()).replace('-', '')
        total += int(value, 16) * val_shift
        bits -= 128
        val_shift *= 2**128
    value = str(uuid.uuid4()).replace('-', '')
    total += (int(value, 16) >> (128 - bits)) * val_shift
    output = base64.encode(total)
    return output
コード例 #8
0
    def test_field_for_fk_not_none_after_creation(self):
        """
         So I want to create new `Continent` for my new shiny funky punky ass
        `Planet` that I've just created, It's easy, just retrieving new
        planet from database to make `ek` available for it, Then it will be
        f*****g freaking ok to assign the fresh `Planet` to
        our sucker `Continent`.
        """
        planet = Planet.objects.create()
        same_planet_but_fresh = Planet.objects.get(pk=planet.pk)
        continent = Continent.objects.create(planet=same_planet_but_fresh)

        self.assertIsNotNone(continent)
        self.assertIsInstance(continent, Continent)
        self.assertIn(continent.ek, ['', None])

        continent_pk = continent.pk
        same_continent_but_fresh = Continent.objects.get(pk=continent_pk)

        self.assertNotEqual(same_continent_but_fresh.ek, continent.ek)
        self.assertEqual(same_continent_but_fresh.ek, base64.encode(continent_pk))
コード例 #9
0
ファイル: models.py プロジェクト: jhgaylor/shortener_project
 def tiny(self):
     return base64.encode(self.pk)
コード例 #10
0
ファイル: test_baseconv.py プロジェクト: yephper/django
 def test_base64(self):
     self.assertEqual(base64.encode(1234), 'JI')
     self.assertEqual(base64.decode('JI'), 1234)
     self.assertEqual(base64.encode(-1234), '$JI')
     self.assertEqual(base64.decode('$JI'), -1234)
コード例 #11
0
ファイル: test_baseconv.py プロジェクト: 1oscar/django
 def test_base64(self):
     self.assertEqual(base64.encode(1234), 'JI')
     self.assertEqual(base64.decode('JI'), 1234)
     self.assertEqual(base64.encode(-1234), '$JI')
     self.assertEqual(base64.decode('$JI'), -1234)
コード例 #12
0
ファイル: uuid.py プロジェクト: artscoop/scoop
def int_shorten(value):
    """ Renvoyer la représentation Base64 d'un entier """
    result = base64.encode(value)
    return result
コード例 #13
0
ファイル: test_baseconv.py プロジェクト: thibaudcolas/django
 def test_base64(self):
     self.assertEqual(base64.encode(1234), "JI")
     self.assertEqual(base64.decode("JI"), 1234)
     self.assertEqual(base64.encode(-1234), "$JI")
     self.assertEqual(base64.decode("$JI"), -1234)