def test_and_filters(self): p_filter = PeerFilter("test peer", filter_or=False, **{ "title": "Mr", "firstname": "Bob", "lastname": "b", "pseudo": "emb"}) matches = p_filter.match("bob", self.peer_desc) self.assertEquals([], matches) # ok p_filter = PeerFilter("test peer", filter_or=False, **{ "title": "Mr", "lastname": "b", "pseudo": "emb"}) matches = p_filter.match("bob", self.peer_desc) self.assertEquals(3, len(matches))
def test_creation(self): name, new_filter = PeerFilter.from_str("peer_bob", [ ("title", "Mr, (1)"), ("lastname", "Bob, (0)")]) self.assertEquals("bob", name) self.assert_(new_filter) name, new_filter = FileFilter.from_str("peer_bob", [ ("title", "Mr, (1)"), ("lastname", "Bob, (0)")]) self.assertEquals(None, new_filter) # files name, new_filter = FileFilter.from_str("file_mp3", [ ("name", "mp3, (1)")]) self.assertEquals("mp3", name) self.assert_(new_filter) name, new_filter = PeerFilter.from_str("file_mp3", [ ("name", "mp3, (1)")]) self.assertEquals(None, new_filter)
def setUp(self): # filters self.peer_filter = PeerFilter("test peer", **{ "title": "Mr", "firstname": "Bob", "lastname": "b", "pseudo": "emb"}) self.file_filter = FileFilter("test file", **{ "name": "mp3"}) # properties doc = CacheDocument() doc.title = "Mr" doc.firstname = "Emmanuel" doc.lastname = "Breton" doc.pseudo = "emb" doc.photo = "none" doc.email = "*****@*****.**" doc.add_custom_attributes(u"book", u"Harry Potter") doc.add_custom_attributes(u"movie", u"Leon") doc.add_custom_attributes(u"sport", u"biking") self.peer_desc = PeerDescriptor("bob", document=doc) self.file_props = ToBeMatch(**{ "name": "Hero.mp3", "size": "3000"})
class FiltersTest(unittest.TestCase): def setUp(self): # filters self.peer_filter = PeerFilter("test peer", **{ "title": "Mr", "firstname": "Bob", "lastname": "b", "pseudo": "emb"}) self.file_filter = FileFilter("test file", **{ "name": "mp3"}) # properties doc = CacheDocument() doc.title = "Mr" doc.firstname = "Emmanuel" doc.lastname = "Breton" doc.pseudo = "emb" doc.photo = "none" doc.email = "*****@*****.**" doc.add_custom_attributes(u"book", u"Harry Potter") doc.add_custom_attributes(u"movie", u"Leon") doc.add_custom_attributes(u"sport", u"biking") self.peer_desc = PeerDescriptor("bob", document=doc) self.file_props = ToBeMatch(**{ "name": "Hero.mp3", "size": "3000"}) def test_creation(self): name, new_filter = PeerFilter.from_str("peer_bob", [ ("title", "Mr, (1)"), ("lastname", "Bob, (0)")]) self.assertEquals("bob", name) self.assert_(new_filter) name, new_filter = FileFilter.from_str("peer_bob", [ ("title", "Mr, (1)"), ("lastname", "Bob, (0)")]) self.assertEquals(None, new_filter) # files name, new_filter = FileFilter.from_str("file_mp3", [ ("name", "mp3, (1)")]) self.assertEquals("mp3", name) self.assert_(new_filter) name, new_filter = PeerFilter.from_str("file_mp3", [ ("name", "mp3, (1)")]) self.assertEquals(None, new_filter) def test_file_filter(self): matches = self.file_filter.match("bob", [self.file_props]) self.assertEquals(1, len(matches)) self.assertEquals("name", matches[0].get_name()) self.assertEquals("mp3", matches[0].get_description()) self.assertEquals("Hero.mp3", matches[0].get_match()) def test_peer_filter(self): matches = self.peer_filter.match("bob", self.peer_desc) self.assertEquals(3, len(matches)) self.assertEquals("title", matches[0].get_name()) self.assertEquals("b", matches[1].get_description()) self.assertEquals("emb", matches[2].get_match()) def test_and_filters(self): p_filter = PeerFilter("test peer", filter_or=False, **{ "title": "Mr", "firstname": "Bob", "lastname": "b", "pseudo": "emb"}) matches = p_filter.match("bob", self.peer_desc) self.assertEquals([], matches) # ok p_filter = PeerFilter("test peer", filter_or=False, **{ "title": "Mr", "lastname": "b", "pseudo": "emb"}) matches = p_filter.match("bob", self.peer_desc) self.assertEquals(3, len(matches)) def test_update(self): self.peer_filter.update_title(FilterValue("title", "Mss", True)) self.assertEquals(2, len( self.peer_filter.match("bob", self.peer_desc))) self.peer_filter.update_email(FilterValue("email", "fr", True)) self.assertEquals(3, len( self.peer_filter.match("bob", self.peer_desc))) def test_update_properties(self): self.assertEquals("Mr", self.peer_filter.title.description) self.assertEquals("", self.peer_filter.email.description) props = {"title": "Mss", "email": "fr"} self.peer_filter.update_properties(**props) self.assertEquals("Mss", self.peer_filter.title.description) self.assertEquals("fr", self.peer_filter.email.description) def test_customs(self): self.peer_filter.update_dict(FilterValue("book", "potter", True)) self.peer_filter.update_dict(FilterValue("sport", "bik", True)) matches = self.peer_filter.match("bob", self.peer_desc) self.assertEquals(5, len(matches)) self.assertEquals("book", matches[3].get_name()) self.assertEquals("bik", matches[4].get_description()) def test_as_dict(self): peer_dict = self.peer_filter.as_dict() file_dict = self.file_filter.as_dict() self.assertEquals({'name': 'mp3, (1)', 'size': ', (0)'}, file_dict) self.assertEquals({'firstname': 'Bob, (1)', 'title': 'Mr, (1)', 'lastname': 'b, (1)', 'pseudo': 'emb, (1)', 'photo': ', (0)', 'email': ', (0)'}, peer_dict)
def write_test_profile(): """write testing profile & blogs into test.prf & test.blog node_id = PROFILE_BRUCE Blog: ````` 'This is a test' Files: `````` data/ |-- date.txt - tagos |-- emptydir Shared |-- profiles | `-- ... |-- routage Shared `-- subdir1 Shared |-- TOtO.txt |-- date.doc `-- subsubdir |-- dummy.txt Shared - tag2 |-- null Shared - tag1 `-- ...""" # write filter filter_document = FilterDocument() peer_filter = PeerFilter("Mr_B", filter_or=False,**{ "pseudo" : "*", "title": "Mr", "lastname": "b"}) peer_filter.update_dict(FilterValue(name='color', value="blue", activate=True)) file_filter = FileFilter("MP3", **{"name": ".mp3"}) filter_document.filters[peer_filter.filter_name] = peer_filter filter_document.filters[file_filter.filter_name] = file_filter if os.path.exists(FILE_TEST + FILTER_EXT): os.remove(FILE_TEST + FILTER_EXT) filter_document.save(FILE_TEST + FILTER_EXT) # write blog blog = Blogs() blog.add_blog(u"This is a test", PSEUDO) if os.path.exists(FILE_TEST + BLOG_EXT): os.remove(FILE_TEST + BLOG_EXT) blog.save(FILE_TEST + BLOG_EXT) # write profile document = FileDocument() document.set_pseudo(PSEUDO) document.set_title(u"Mr") document.set_firstname(u"manu") document.set_lastname(u"breton") document.set_photo(QUESTION_MARK()) document.set_email(u"*****@*****.**") document.load_defaults() document.add_custom_attributes(u"homepage", u"manu.com") document.add_custom_attributes(u'color', u'blue') document.remove_custom_attributes(u'Sport') document.add_repository(TEST_DIR) document.expand_dir(DATA_DIR) document.expand_dir(os.path.join(DATA_DIR, "subdir1")) document.share_files(DATA_DIR, ["routage", "emptydir", "subdir1"]) document.share_files(os.sep.join([DATA_DIR, "subdir1", "subsubdir"]), ["null", "dummy.txt"]) document.tag_file(os.path.join(DATA_DIR, "date.txt"), u"tagos") document.tag_file(os.sep.join([DATA_DIR, "subdir1", "subsubdir", "null"]), u"tag1") document.tag_file(os.sep.join([DATA_DIR, "subdir1", "subsubdir", "dummy.txt"]), u"tag2") # set peers bruce = get_bruce_profile() bruce_doc = bruce.document bruce_blog = bruce.blog document.fill_data(PROFILE_BRUCE, bruce_doc) document.fill_blog(PROFILE_BRUCE, bruce_blog) document.make_friend(PROFILE_BRUCE) # write file if os.path.exists(FILE_TEST + PROFILE_EXT): os.remove(FILE_TEST + PROFILE_EXT) document.save(FILE_TEST + PROFILE_EXT)