示例#1
0
 def get_pk(self, obj):
     """
     Get hashed pk value
     :param obj: instance to hash pk for
     :return: string
     """
     return get_hasher().encode(obj.pk)
    def test_hasher_bad_hashid(self):
        """
        Test that we get none if hashid is bad
        :return: None
        """
        h = hasher.get_hasher()

        self.assertIsNone(h.decode_single('eeses'))
示例#3
0
    def get_by_hashid(self, hashid):
        """
        Get an object by a hashed pk
        :param hashid: hashed pk value
        :return: None
        """
        hasher = get_hasher()

        return self.get(pk=hasher.decode_single(hashid))
    def test_not_found(self):
        """
        Test that we get default error if model not found
        :return: None
        """
        hasher = get_hasher()
        hashed_pk = hasher.encode(9999)

        with self.assertRaises(self.TestUser.DoesNotExist):
            self.TestUser.objects.get_by_hashid(hashed_pk)
    def test_successful(self):
        """
        Test that we can get an instance by hashid
        :return: None
        """
        hasher = get_hasher()
        user = self.TestUser.objects.create(email='*****@*****.**')
        hashed_pk = hasher.encode(user.pk)

        retrieved_user = self.TestUser.objects.get_by_hashid(hashed_pk)

        self.assertEquals(retrieved_user, user)
    def test_hasher_successful(self):
        """
        Test that we can encode and decode an integer value
        :return: None
        """
        h = hasher.get_hasher()
        pk_value = 29303

        hashed = h.encode(pk_value)

        self.assertIsInstance(hashed, str)

        self.assertEquals(h.decode_single(hashed), pk_value)
    def test_hashid_model_serializer_successful(self):
        """
        Test that we can serialize with the hashid serializer
        :return: None
        """
        hasher = get_hasher()
        user = User.objects.create_user(email='*****@*****.**')
        hashed_pk = hasher.encode(user.pk)

        serialized_user_data = TestUserSerializer(user).data

        self.assertEquals(len(serialized_user_data.values()),
                          2)  # only pk and email
        self.assertEquals(serialized_user_data['email'], user.email)
        self.assertEquals(serialized_user_data['pk'], hashed_pk)