class FilterTest(unittest.TestCase): """test that all fields are correctly validated""" def setUp(self): """override one in unittest.TestCase""" write_test_profile() # load profile self.document = FilterDocument() self.document.load(FILTER_TEST) def assert_content(self, document): self.assertEquals(3, len(self.document.filters)) self.assert_(self.document.filters["All"].filter_or) self.assert_(self.document.filters["MP3"].filter_or) self.assertEquals(False, self.document.filters["Mr_B"].filter_or) all_dict = self.document.filters["All"].as_dict() peer_dict = self.document.filters["Mr_B"].as_dict() file_dict = self.document.filters["MP3"].as_dict() self.assertEquals('*, (1)', all_dict['pseudo']) self.assertEquals('.mp3, (1)', file_dict['name']) self.assertEquals('*, (1)', peer_dict['pseudo']) self.assertEquals('Mr, (1)', peer_dict['title']) self.assertEquals('b, (1)', peer_dict['lastname']) self.assertEquals('blue, (1)', peer_dict['color']) def test_load(self): self.assert_content(self.document) def test_import(self): doc = FilterDocument() doc.import_document(self.document) self.assert_content(doc) def test_match(self): peer_desc = PeerDescriptor(PROFILE_TEST) peer_desc.load(directory=PROFILE_DIR) self.document.match(peer_desc) # check results self.assertEquals(3, len(self.document.results)) self.assert_('All' in self.document.results) self.assert_('Mr_B' in self.document.results) self.assert_('MP3' in self.document.results) results = [(result.get_name(), result.get_match()) for result in self.document.results['Mr_B'][PROFILE_TEST]] results.sort() self.assertEquals([('color', 'blue'), ('lastname', 'breton'), ('pseudo', 'atao'), ('title', 'Mr')], results)
def test_import(self): doc = FilterDocument() doc.import_document(self.document) self.assert_content(doc)
def setUp(self): """override one in unittest.TestCase""" write_test_profile() # load profile self.document = FilterDocument() self.document.load(FILTER_TEST)
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)