def test_refresh_nonce(self): interest = Interest(self.referenceInterest) oldNonce = interest.getNonce() self.assertEqual(4, oldNonce.size()) interest.refreshNonce() self.assertEqual(oldNonce.size(), interest.getNonce().size(), "The refreshed nonce should be the same size") self.assertFalse(interest.getNonce().equals(oldNonce), "The refreshed nonce should be different")
def test_refresh_nonce(self): interest = Interest(self.referenceInterest) oldNonce = interest.getNonce() self.assertEqual(4, oldNonce.size()) interest.refreshNonce() self.assertEqual(oldNonce.size(), interest.getNonce().size(), "The refreshed nonce should be the same size") self.assertFalse(interest.getNonce().equals(oldNonce), "The refreshed nonce should be different")
def test_set_removes_nonce(self): # Ensure that changing a value on an interest clears the nonce. self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) # Change a child object. interest.getExclude().clear() self.assertTrue(interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields')
class TestInterestMethods(ut.TestCase): def setUp(self): self.referenceInterest = Interest() self.referenceInterest.wireDecode(codedInterest) def test_copy_constructor(self): interest = Interest(self.referenceInterest) self.assertTrue( interestDumpsEqual(dumpInterest(interest), dumpInterest(self.referenceInterest)), 'Interest constructed as deep copy does not match original') def test_empty_nonce(self): # make sure a freshly created interest has no nonce freshInterest = createFreshInterest() self.assertTrue(freshInterest.getNonce().isNull(), 'Freshly created interest should not have a nonce') def test_set_removes_nonce(self): # ensure that setting a value on an interest clears the nonce self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) interest.setChildSelector(0) self.assertTrue( interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields')
def test_set_removes_nonce(self): # Ensure that changing a value on an interest clears the nonce. self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) # Change a child object. interest.getExclude().clear() self.assertTrue(interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields')
def test_set_removes_nonce(self): # ensure that setting a value on an interest clears the nonce self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) interest.setChildSelector(0) self.assertTrue( interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields')
class TestInterestMethods(ut.TestCase): def setUp(self): self.referenceInterest = Interest() self.referenceInterest.wireDecode(codedInterest) def test_copy_constructor(self): interest = Interest(self.referenceInterest) self.assertTrue(interestDumpsEqual(dumpInterest(interest), dumpInterest(self.referenceInterest)), 'Interest constructed as deep copy does not match original') def test_empty_nonce(self): # make sure a freshly created interest has no nonce freshInterest = createFreshInterest() self.assertTrue(freshInterest.getNonce().isNull(), 'Freshly created interest should not have a nonce') def test_set_removes_nonce(self): # ensure that setting a value on an interest clears the nonce self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) interest.setChildSelector(0) self.assertTrue(interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields')
class TestInterestMethods(ut.TestCase): def setUp(self): self.referenceInterest = Interest() self.referenceInterest.wireDecode(codedInterest) def test_copy_constructor(self): interest = Interest(self.referenceInterest) self.assertTrue(interestDumpsEqual(dumpInterest(interest), dumpInterest(self.referenceInterest)), 'Interest constructed as deep copy does not match original') def test_empty_nonce(self): # make sure a freshly created interest has no nonce freshInterest = createFreshInterest() self.assertTrue(freshInterest.getNonce().isNull(), 'Freshly created interest should not have a nonce') def test_set_removes_nonce(self): # Ensure that changing a value on an interest clears the nonce. self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) # Change a child object. interest.getExclude().clear() self.assertTrue(interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields') def test_refresh_nonce(self): interest = Interest(self.referenceInterest) oldNonce = interest.getNonce() self.assertEqual(4, oldNonce.size()) interest.refreshNonce() self.assertEqual(oldNonce.size(), interest.getNonce().size(), "The refreshed nonce should be the same size") self.assertFalse(interest.getNonce().equals(oldNonce), "The refreshed nonce should be different") def test_exclude_matches(self): exclude = Exclude() exclude.appendComponent(Name("%00%02").get(0)) exclude.appendAny() exclude.appendComponent(Name("%00%20").get(0)) component = Name("%00%01").get(0) self.assertFalse(exclude.matches(component), component.toEscapedString() + " should not match " + exclude.toUri()) component = Name("%00%0F").get(0) self.assertTrue(exclude.matches(component), component.toEscapedString() + " should match " + exclude.toUri()) component = Name("%00%21").get(0) self.assertFalse(exclude.matches(component), component.toEscapedString() + " should not match " + exclude.toUri()) def test_verify_digest_sha256(self): # Create a KeyChain but we don't need to add keys. identityStorage = MemoryIdentityStorage() keyChain = KeyChain( IdentityManager(identityStorage, MemoryPrivateKeyStorage()), SelfVerifyPolicyManager(identityStorage)) interest = Interest(Name("/test/signed-interest")) keyChain.signWithSha256(interest) # We create 'mock' objects to replace callbacks since we're not # interested in the effect of the callbacks themselves. failedCallback = Mock() verifiedCallback = Mock() keyChain.verifyInterest(interest, verifiedCallback, failedCallback) self.assertEqual(failedCallback.call_count, 0, 'Signature verification failed') self.assertEqual(verifiedCallback.call_count, 1, 'Verification callback was not used.') def test_interest_filter_matching(self): self.assertEqual(True, InterestFilter("/a").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a/b").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b/c").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a", "<b>").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b", "<b>").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b", "<c>").doesMatch(Name("/a/b/c/d"))) self.assertEqual(False, InterestFilter("/a/b", "<b>").doesMatch(Name("/a/b/c/b"))) self.assertEqual(True, InterestFilter("/a/b", "<>*<b>").doesMatch(Name("/a/b/c/b"))) self.assertEqual(False, InterestFilter("/a", "<b>").doesMatch(Name("/a/b/c/d"))) self.assertEqual(True, InterestFilter("/a", "<b><>*").doesMatch(Name("/a/b/c/d"))) self.assertEqual(True, InterestFilter("/a", "<b><>*").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a", "<b><>+").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a", "<b><>+").doesMatch(Name("/a/b/c")))
class TestInterestMethods(ut.TestCase): def setUp(self): self.referenceInterest = Interest() self.referenceInterest.wireDecode(codedInterest) def test_copy_constructor(self): interest = Interest(self.referenceInterest) self.assertTrue(interestDumpsEqual(dumpInterest(interest), dumpInterest(self.referenceInterest)), 'Interest constructed as deep copy does not match original') def test_empty_nonce(self): # make sure a freshly created interest has no nonce freshInterest = createFreshInterest() self.assertTrue(freshInterest.getNonce().isNull(), 'Freshly created interest should not have a nonce') def test_set_removes_nonce(self): # Ensure that changing a value on an interest clears the nonce. self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) # Change a child object. interest.getExclude().clear() self.assertTrue(interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields') def test_refresh_nonce(self): interest = Interest(self.referenceInterest) oldNonce = interest.getNonce() self.assertEqual(4, oldNonce.size()) interest.refreshNonce() self.assertEqual(oldNonce.size(), interest.getNonce().size(), "The refreshed nonce should be the same size") self.assertFalse(interest.getNonce().equals(oldNonce), "The refreshed nonce should be different") def test_exclude_matches(self): exclude = Exclude() exclude.appendComponent(Name("%00%02").get(0)) exclude.appendAny() exclude.appendComponent(Name("%00%20").get(0)) component = Name("%00%01").get(0) self.assertFalse(exclude.matches(component), component.toEscapedString() + " should not match " + exclude.toUri()) component = Name("%00%0F").get(0) self.assertTrue(exclude.matches(component), component.toEscapedString() + " should match " + exclude.toUri()) component = Name("%00%21").get(0) self.assertFalse(exclude.matches(component), component.toEscapedString() + " should not match " + exclude.toUri()) def test_verify_digest_sha256(self): # Create a KeyChain but we don't need to add keys. identityStorage = MemoryIdentityStorage() keyChain = KeyChain( IdentityManager(identityStorage, MemoryPrivateKeyStorage()), SelfVerifyPolicyManager(identityStorage)) interest = Interest(Name("/test/signed-interest")) keyChain.signWithSha256(interest) # We create 'mock' objects to replace callbacks since we're not # interested in the effect of the callbacks themselves. failedCallback = Mock() verifiedCallback = Mock() keyChain.verifyInterest(interest, verifiedCallback, failedCallback) self.assertEqual(failedCallback.call_count, 0, 'Signature verification failed') self.assertEqual(verifiedCallback.call_count, 1, 'Verification callback was not used.') def test_matches_data(self): interest = Interest(Name("/A")) interest.setMinSuffixComponents(2) interest.setMaxSuffixComponents(2) interest.getKeyLocator().setType(KeyLocatorType.KEYNAME) interest.getKeyLocator().setKeyName(Name("/B")) interest.getExclude().appendComponent(Name.Component("J")) interest.getExclude().appendAny() data = Data(Name("/A/D")) signature = Sha256WithRsaSignature() signature.getKeyLocator().setType(KeyLocatorType.KEYNAME) signature.getKeyLocator().setKeyName(Name("/B")) data.setSignature(signature) self.assertEqual(interest.matchesData(data), True) # Check violating MinSuffixComponents. data1 = Data(data) data1.setName(Name("/A")) self.assertEqual(interest.matchesData(data1), False) interest1 = Interest(interest) interest1.setMinSuffixComponents(1) self.assertEqual(interest1.matchesData(data1), True) # Check violating MaxSuffixComponents. data2 = Data(data) data2.setName(Name("/A/E/F")) self.assertEqual(interest.matchesData(data2), False) interest2 = Interest(interest) interest2.setMaxSuffixComponents(3) self.assertEqual(interest2.matchesData(data2), True) # Check violating PublisherPublicKeyLocator. data3 = Data(data) signature3 = Sha256WithRsaSignature() signature3.getKeyLocator().setType(KeyLocatorType.KEYNAME) signature3.getKeyLocator().setKeyName(Name("/G")) data3.setSignature(signature3) self.assertEqual(interest.matchesData(data3), False) interest3 = Interest(interest) interest3.getKeyLocator().setType(KeyLocatorType.KEYNAME) interest3.getKeyLocator().setKeyName(Name("/G")) self.assertEqual(interest3.matchesData(data3), True) data4 = Data(data) data4.setSignature(DigestSha256Signature()) self.assertEqual(interest.matchesData(data4), False) interest4 = Interest(interest) interest4.setKeyLocator(KeyLocator()) self.assertEqual(interest4.matchesData(data4), True) # Check violating Exclude. data5 = Data(data) data5.setName(Name("/A/J")) self.assertEqual(interest.matchesData(data5), False) interest5 = Interest(interest) interest5.getExclude().clear() interest5.getExclude().appendComponent(Name.Component("K")) interest5.getExclude().appendAny() self.assertEqual(interest5.matchesData(data5), True) # Check violating Name. data6 = Data(data) data6.setName(Name("/H/I")) self.assertEqual(interest.matchesData(data6), False) data7 = Data(data) data7.setName(Name("/A/B")) interest7 = Interest( Name("/A/B/sha256digest=" + "54008e240a7eea2714a161dfddf0dd6ced223b3856e9da96792151e180f3b128")) self.assertEqual(interest7.matchesData(data7), True) # Check violating the implicit digest. interest7b = Interest( Name("/A/B/%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00" + "%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00")) self.assertEqual(interest7b.matchesData(data7), False) # Check excluding the implicit digest. interest8 = Interest(Name("/A/B")) interest8.getExclude().appendComponent(interest7.getName().get(2)) self.assertEqual(interest8.matchesData(data7), False) def test_interest_filter_matching(self): self.assertEqual(True, InterestFilter("/a").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a/b").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b/c").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a", "<b>").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b", "<b>").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b", "<c>").doesMatch(Name("/a/b/c/d"))) self.assertEqual(False, InterestFilter("/a/b", "<b>").doesMatch(Name("/a/b/c/b"))) self.assertEqual(True, InterestFilter("/a/b", "<>*<b>").doesMatch(Name("/a/b/c/b"))) self.assertEqual(False, InterestFilter("/a", "<b>").doesMatch(Name("/a/b/c/d"))) self.assertEqual(True, InterestFilter("/a", "<b><>*").doesMatch(Name("/a/b/c/d"))) self.assertEqual(True, InterestFilter("/a", "<b><>*").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a", "<b><>+").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a", "<b><>+").doesMatch(Name("/a/b/c")))
class TestInterestMethods(ut.TestCase): def setUp(self): self.referenceInterest = Interest() self.referenceInterest.wireDecode(codedInterest) def test_copy_constructor(self): interest = Interest(self.referenceInterest) self.assertTrue(interestDumpsEqual(dumpInterest(interest), dumpInterest(self.referenceInterest)), 'Interest constructed as deep copy does not match original') def test_empty_nonce(self): # make sure a freshly created interest has no nonce freshInterest = createFreshInterest() self.assertTrue(freshInterest.getNonce().isNull(), 'Freshly created interest should not have a nonce') def test_set_removes_nonce(self): # Ensure that changing a value on an interest clears the nonce. self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) # Change a child object. interest.getExclude().clear() self.assertTrue(interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields') def test_refresh_nonce(self): interest = Interest(self.referenceInterest) oldNonce = interest.getNonce() self.assertEqual(4, oldNonce.size()) interest.refreshNonce() self.assertEqual(oldNonce.size(), interest.getNonce().size(), "The refreshed nonce should be the same size") self.assertFalse(interest.getNonce().equals(oldNonce), "The refreshed nonce should be different") def test_exclude_matches(self): exclude = Exclude() exclude.appendComponent(Name("%00%02").get(0)) exclude.appendAny() exclude.appendComponent(Name("%00%20").get(0)) component = Name("%00%01").get(0) self.assertFalse(exclude.matches(component), component.toEscapedString() + " should not match " + exclude.toUri()) component = Name("%00%0F").get(0) self.assertTrue(exclude.matches(component), component.toEscapedString() + " should match " + exclude.toUri()) component = Name("%00%21").get(0) self.assertFalse(exclude.matches(component), component.toEscapedString() + " should not match " + exclude.toUri()) def test_verify_digest_sha256(self): # Create a KeyChain but we don't need to add keys. identityStorage = MemoryIdentityStorage() keyChain = KeyChain( IdentityManager(identityStorage, MemoryPrivateKeyStorage()), SelfVerifyPolicyManager(identityStorage)) interest = Interest(Name("/test/signed-interest")) keyChain.signWithSha256(interest) # We create 'mock' objects to replace callbacks since we're not # interested in the effect of the callbacks themselves. failedCallback = Mock() verifiedCallback = Mock() keyChain.verifyInterest(interest, verifiedCallback, failedCallback) self.assertEqual(failedCallback.call_count, 0, 'Signature verification failed') self.assertEqual(verifiedCallback.call_count, 1, 'Verification callback was not used.') def test_matches_data(self): interest = Interest(Name("/A")) interest.setMinSuffixComponents(2) interest.setMaxSuffixComponents(2) interest.getKeyLocator().setType(KeyLocatorType.KEYNAME) interest.getKeyLocator().setKeyName(Name("/B")) interest.getExclude().appendComponent(Name.Component("J")) interest.getExclude().appendAny() data = Data(Name("/A/D")) signature = Sha256WithRsaSignature() signature.getKeyLocator().setType(KeyLocatorType.KEYNAME) signature.getKeyLocator().setKeyName(Name("/B")) data.setSignature(signature) self.assertEqual(interest.matchesData(data), True) # Check violating MinSuffixComponents. data1 = Data(data) data1.setName(Name("/A")) self.assertEqual(interest.matchesData(data1), False) interest1 = Interest(interest) interest1.setMinSuffixComponents(1) self.assertEqual(interest1.matchesData(data1), True) # Check violating MaxSuffixComponents. data2 = Data(data) data2.setName(Name("/A/E/F")) self.assertEqual(interest.matchesData(data2), False) interest2 = Interest(interest) interest2.setMaxSuffixComponents(3) self.assertEqual(interest2.matchesData(data2), True) # Check violating PublisherPublicKeyLocator. data3 = Data(data) signature3 = Sha256WithRsaSignature() signature3.getKeyLocator().setType(KeyLocatorType.KEYNAME) signature3.getKeyLocator().setKeyName(Name("/G")) data3.setSignature(signature3) self.assertEqual(interest.matchesData(data3), False) interest3 = Interest(interest) interest3.getKeyLocator().setType(KeyLocatorType.KEYNAME) interest3.getKeyLocator().setKeyName(Name("/G")) self.assertEqual(interest3.matchesData(data3), True) data4 = Data(data) data4.setSignature(DigestSha256Signature()) self.assertEqual(interest.matchesData(data4), False) interest4 = Interest(interest) interest4.setKeyLocator(KeyLocator()) self.assertEqual(interest4.matchesData(data4), True) # Check violating Exclude. data5 = Data(data) data5.setName(Name("/A/J")) self.assertEqual(interest.matchesData(data5), False) interest5 = Interest(interest) interest5.getExclude().clear() interest5.getExclude().appendComponent(Name.Component("K")) interest5.getExclude().appendAny() self.assertEqual(interest5.matchesData(data5), True) # Check violating Name. data6 = Data(data) data6.setName(Name("/H/I")) self.assertEqual(interest.matchesData(data6), False) data7 = Data(data) data7.setName(Name("/A/B")) interest7 = Interest( Name("/A/B/sha256digest=" + "54008e240a7eea2714a161dfddf0dd6ced223b3856e9da96792151e180f3b128")) self.assertEqual(interest7.matchesData(data7), True) # Check violating the implicit digest. interest7b = Interest( Name("/A/B/%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00" + "%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00")) self.assertEqual(interest7b.matchesData(data7), False) # Check excluding the implicit digest. interest8 = Interest(Name("/A/B")) interest8.getExclude().appendComponent(interest7.getName().get(2)) self.assertEqual(interest8.matchesData(data7), False) def test_interest_filter_matching(self): self.assertEqual(True, InterestFilter("/a").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a/b").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b/c").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a", "<b>").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b", "<b>").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b", "<c>").doesMatch(Name("/a/b/c/d"))) self.assertEqual(False, InterestFilter("/a/b", "<b>").doesMatch(Name("/a/b/c/b"))) self.assertEqual(True, InterestFilter("/a/b", "<>*<b>").doesMatch(Name("/a/b/c/b"))) self.assertEqual(False, InterestFilter("/a", "<b>").doesMatch(Name("/a/b/c/d"))) self.assertEqual(True, InterestFilter("/a", "<b><>*").doesMatch(Name("/a/b/c/d"))) self.assertEqual(True, InterestFilter("/a", "<b><>*").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a", "<b><>+").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a", "<b><>+").doesMatch(Name("/a/b/c")))
class TestInterestMethods(ut.TestCase): def setUp(self): self.referenceInterest = Interest() self.referenceInterest.wireDecode(codedInterest) def test_copy_constructor(self): interest = Interest(self.referenceInterest) self.assertTrue( interestDumpsEqual(dumpInterest(interest), dumpInterest(self.referenceInterest)), 'Interest constructed as deep copy does not match original') def test_empty_nonce(self): # make sure a freshly created interest has no nonce freshInterest = createFreshInterest() self.assertTrue(freshInterest.getNonce().isNull(), 'Freshly created interest should not have a nonce') def test_set_removes_nonce(self): # Ensure that changing a value on an interest clears the nonce. self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) # Change a child object. interest.getExclude().clear() self.assertTrue( interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields') def test_exclude_matches(self): exclude = Exclude() exclude.appendComponent(Name("%00%02").get(0)) exclude.appendAny() exclude.appendComponent(Name("%00%20").get(0)) component = Name("%00%01").get(0) self.assertFalse( exclude.matches(component), component.toEscapedString() + " should not match " + exclude.toUri()) component = Name("%00%0F").get(0) self.assertTrue( exclude.matches(component), component.toEscapedString() + " should match " + exclude.toUri()) component = Name("%00%21").get(0) self.assertFalse( exclude.matches(component), component.toEscapedString() + " should not match " + exclude.toUri()) def test_verify_digest_sha256(self): # Create a KeyChain but we don't need to add keys. identityStorage = MemoryIdentityStorage() keyChain = KeyChain( IdentityManager(identityStorage, MemoryPrivateKeyStorage()), SelfVerifyPolicyManager(identityStorage)) interest = Interest(Name("/test/signed-interest")) keyChain.signWithSha256(interest) # We create 'mock' objects to replace callbacks since we're not # interested in the effect of the callbacks themselves. failedCallback = Mock() verifiedCallback = Mock() keyChain.verifyInterest(interest, verifiedCallback, failedCallback) self.assertEqual(failedCallback.call_count, 0, 'Signature verification failed') self.assertEqual(verifiedCallback.call_count, 1, 'Verification callback was not used.') def test_interest_filter_matching(self): self.assertEqual(True, InterestFilter("/a").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a/b").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b/c").doesMatch(Name("/a/b"))) self.assertEqual(True, InterestFilter("/a", "<b>").doesMatch(Name("/a/b"))) self.assertEqual(False, InterestFilter("/a/b", "<b>").doesMatch(Name("/a/b"))) self.assertEqual( False, InterestFilter("/a/b", "<c>").doesMatch(Name("/a/b/c/d"))) self.assertEqual( False, InterestFilter("/a/b", "<b>").doesMatch(Name("/a/b/c/b"))) self.assertEqual( True, InterestFilter("/a/b", "<>*<b>").doesMatch(Name("/a/b/c/b"))) self.assertEqual( False, InterestFilter("/a", "<b>").doesMatch(Name("/a/b/c/d"))) self.assertEqual( True, InterestFilter("/a", "<b><>*").doesMatch(Name("/a/b/c/d"))) self.assertEqual( True, InterestFilter("/a", "<b><>*").doesMatch(Name("/a/b"))) self.assertEqual( False, InterestFilter("/a", "<b><>+").doesMatch(Name("/a/b"))) self.assertEqual( True, InterestFilter("/a", "<b><>+").doesMatch(Name("/a/b/c")))
def test_set_removes_nonce(self): # ensure that setting a value on an interest clears the nonce self.assertFalse(self.referenceInterest.getNonce().isNull()) interest = Interest(self.referenceInterest) interest.setChildSelector(0) self.assertTrue(interest.getNonce().isNull(), 'Interest should not have a nonce after changing fields')