import unittest from probe_identity import evaluate, ORIGIN_MACHINE class IdentityTests(unittest.TestCase): def test_old_identity_and_root_never_pass(self): self.assertFalse(evaluate(0, 'a'*64, 0, 'a'*64)['identity_matches']) self.assertFalse(evaluate(1000, ORIGIN_MACHINE, 1000, ORIGIN_MACHINE)['identity_matches']) def test_same_uid_distinct_host_is_valid_partial_identity(self): self.assertTrue(evaluate(1000, 'a'*64, 1000, 'a'*64)['identity_matches']) def test_separate_uid_same_host_is_valid_partial_identity(self): self.assertTrue(evaluate(1200, ORIGIN_MACHINE, 1200, ORIGIN_MACHINE)['identity_matches']) def test_malformed_digest_refused(self): self.assertFalse(evaluate(1200, 'z'*64, 1200, 'z'*64)['identity_matches']) def test_wrong_host_or_user_fail(self): self.assertFalse(evaluate(1200, 'a'*64, 1201, 'a'*64)['identity_matches']) self.assertFalse(evaluate(1200, 'a'*64, 1200, 'b'*64)['identity_matches']) def test_matching_child_is_never_assignment_admission(self): result = evaluate(1200, 'a'*64, 1200, 'a'*64) self.assertTrue(result['identity_matches']) self.assertFalse(result['assignment_admitted']) if __name__ == '__main__': unittest.main()