Example #1
0
    def test_url_hashing(self):
        # check first 10.000 values
        n = 10000
        ids = range(n)
        seen_hashes = set()
        for i in ids:
            h = EventLink.encode_hash(i)
            r_i = EventLink.decode_hash(h)
            self.assertEqual(i, r_i)
            seen_hashes.add(h)
        # check for no collisions
        self.assertEqual(len(seen_hashes), n)

        # check some random custom url values
        vals = ['foobar', 'somecustomlink1']
        for val in vals:
            i = EventLink.decode_hash(val)
            r_h = EventLink.encode_hash(i)
            self.assertEqual(val, r_h)

        # check some random invalid url values
        vals = ['foo bar', 'somecustom/link']
        for val in vals:
            i = EventLink.decode_hash(val)
            self.assertEqual(i, None)
Example #2
0
    def test_url_collision_skip(self):
        vals = (5, 6, 4, 7, 8, 20)
        for i, val in enumerate(vals):
            slug = EventLink.encode_hash(val)
            eventLink = self.event.create_link(slug=slug)

        n = 10
        ids = range(n)
        for i in ids:
            eventLink = self.event.create_link()
        num_links = EventLink.objects.filter(event__isnull=False).count()
        self.assertEqual(num_links, n+len(vals))