示例#1
0
 def testUUIDstrInvalidUUID(self):
     with self.assertRaises(Exception):
         # Too short
         generate.arcp_random(uuid="5da78af6")
     with self.assertRaises(Exception):
         # empty
         generate.arcp_random(uuid="")
示例#2
0
 def testRandom(self):
     u = generate.arcp_random()
     u2 = generate.arcp_random()
     # always fresh
     self.assertNotEqual(u, u2)
     self.assertTrue(u.startswith("arcp://uuid,"))
     self.assertTrue(u.endswith("/"))
示例#3
0
 def testUUIDstr(self):
     self.assertEqual(
         "arcp://uuid,8c36d39a-18be-4aa8-b1ce-fef330b00a28/",
         generate.arcp_random(uuid="8c36d39a-18be-4aa8-b1ce-fef330b00a28"))
     with self.assertRaises(Exception):
         # UUID version must be 4
         generate.arcp_random(uuid="dbc0802a-0682-11e8-9895-b8ca3ad10ac0")
示例#4
0
 def testRandomPath(self):
     u = generate.arcp_random("/folder/file.txt")
     self.assertTrue(u.startswith("arcp://uuid,"))
     self.assertTrue(u.endswith("/folder/file.txt"))
     self.assertEqual(
         # initial / in path is optional
         len(generate.arcp_random("file.txt")),
         len(generate.arcp_random("/file.txt")))
示例#5
0
 def testUUIDstrPathQueryFrag(self):
     self.assertEqual(
         "arcp://uuid,8c36d39a-18be-4aa8-b1ce-fef330b00a28/folder/file.txt?q=s#frag",
         generate.arcp_random("/folder/file.txt",
                              "q=s",
                              "frag",
                              uuid="8c36d39a-18be-4aa8-b1ce-fef330b00a28"))
示例#6
0
 def testRandomValidUUID(self):
     u = generate.arcp_random()
     # Extract UUID to ensure it is v4
     uuidStr = u.replace("arcp://uuid,", "").strip("/")
     # Ensure RFC4122 compliance
     self.assertIsNotNone(uuid_re.match(uuidStr))
     # ensure lower-case in output
     self.assertEqual(uuidStr, uuidStr.lower())
     # must be valid UUID
     uuid = UUID(uuidStr)
     # must be RFC_4122 variant, version 4 (random)
     self.assertEqual(RFC_4122, uuid.variant)
     self.assertEqual(4, uuid.version)
示例#7
0
 def resolve_id(self, relative_id):
     return generate.arcp_random(relative_id.strip('./'), uuid=self.uuid)
示例#8
0
 def testUUIDPath(self):
     self.assertEqual(
         "arcp://uuid,8c36d39a-18be-4aa8-b1ce-fef330b00a28/folder/file.txt",
         generate.arcp_random("/folder/file.txt", uuid=TEST_UUID_v4))
示例#9
0
 def testUUID(self):
     self.assertEqual("arcp://uuid,8c36d39a-18be-4aa8-b1ce-fef330b00a28/",
                      generate.arcp_random(uuid=TEST_UUID_v4))
     # UUID version must be 4
     with self.assertRaises(Exception):
         generate.arcp_random(uuid=TEST_UUID_v1)
示例#10
0
 def testRandomPathQueryFrag(self):
     u = generate.arcp_random("/folder/file.txt", "a=b&c=d", "frag")
     self.assertTrue(u.startswith("arcp://uuid,"))
     self.assertTrue(u.endswith("/folder/file.txt?a=b&c=d#frag"))
示例#11
0
 def testRandomFrag(self):
     u = generate.arcp_random(fragment="frag")
     self.assertTrue(u.startswith("arcp://uuid,"))
     self.assertTrue(u.endswith("/#frag"))
示例#12
0
 def testRandomQuery(self):
     u = generate.arcp_random(query="q=a")
     self.assertTrue(u.startswith("arcp://uuid,"))
     self.assertTrue(u.endswith("/?q=a"))