This prevents a pillarsdk.exceptions.MethodNotAllowed exception, which would result in a 500 Internal Server Error on the frontend.
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
# -*- encoding: utf-8 -*-
|
|
|
|
import unittest
|
|
|
|
from pillar.web import utils
|
|
|
|
|
|
class IsValidIdTest(unittest.TestCase):
|
|
def test_valid(self):
|
|
# 24-byte hex strings
|
|
self.assertTrue(utils.is_valid_id(24 * 'a'))
|
|
self.assertTrue(utils.is_valid_id(24 * u'a'))
|
|
self.assertTrue(utils.is_valid_id('deadbeefbeefcacedeadcace'))
|
|
self.assertTrue(utils.is_valid_id(u'deadbeefbeefcacedeadcace'))
|
|
|
|
# 12-byte arbitrary ASCII strings
|
|
self.assertTrue(utils.is_valid_id('DeadBeefCake'))
|
|
self.assertTrue(utils.is_valid_id(u'DeadBeefCake'))
|
|
|
|
# 12-byte str object
|
|
self.assertTrue(utils.is_valid_id('beef€67890'))
|
|
|
|
def test_bad_length(self):
|
|
self.assertFalse(utils.is_valid_id(23 * 'a'))
|
|
self.assertFalse(utils.is_valid_id(25 * u'a'))
|
|
|
|
def test_non_string(self):
|
|
self.assertFalse(utils.is_valid_id(None))
|
|
self.assertFalse(utils.is_valid_id(1234))
|
|
self.assertFalse(utils.is_valid_id([24 * 'a']))
|
|
|
|
def test_bad_content(self):
|
|
# 24-character non-hexadecimal string
|
|
self.assertFalse(utils.is_valid_id('deadbeefbeefcakedeadcake'))
|
|
|
|
# unicode variant of valid 12-byte str object
|
|
self.assertFalse(utils.is_valid_id(u'beef€67890'))
|