def setUp(self): """override one in unittest.TestCase""" write_test_profile() # load profile peer_desc = PeerDescriptor(PROFILE_TEST) peer_desc.load(directory=PROFILE_DIR) self.document = peer_desc.document
class MatchTest(unittest.TestCase): def setUp(self): # peer peer_document = FileDocument(PROFILE_TEST, PROFILE_DIRECTORY) peer_document.load() self.peer_desc = PeerDescriptor(PROFILE_TEST, document=peer_document) self.peer_desc.set_shared_files() # filter self.document = FilterDocument(PROFILE_TEST, PROFILE_DIRECTORY) self.document.load() def test_creation(self): match = PeerMatch(self.peer_desc, self.document) self.assertEquals(match.title.get_match(), "Mr") self.assertEquals(match.firstname, False) self.assertEquals(match.lastname.get_match(), "breton") self.assertEquals(match.photo, False) self.assertEquals(match.email, False) self.assertEquals(match.customs['color'].get_match(), u'blue') self.assertEquals(match.files, {}) def test_activated(self): # activate self.document.get_email().activate() match = PeerMatch(self.peer_desc, self.document) self.assertEquals(match.email.get_match(), u'*****@*****.**') def test_files(self): # add filter for dummy.txt self.document.add_file((u'Any', FilterValue(value=u'.*\..*', activate=True))) match = PeerMatch(self.peer_desc, self.document) match_files = [file_container.match for file_container in match.files[u'Any']] self.assertEquals(match_files, ['TOtO.txt', 'dummy.txt'])
def fill_data(self, peer_id, document, flag_update=True): """stores CacheDocument associated with peer""" # set peer_desc if not self.has_peer(peer_id): peer_desc = PeerDescriptor(peer_id, document=document) self.set_peer(peer_id, peer_desc) else: peer_desc = self.get_peer(peer_id) # set data peer_desc.document = document self.last_downloaded_desc = flag_update and peer_desc or None return peer_desc
def fill_blog(self, peer_id, blog, flag_update=True): """stores CacheDocument associated with peer""" blog = retro_compatibility(blog) if not isinstance(blog, Blogs): raise TypeError("data expected as AbstractDocument") # set peer_desc if not self.has_peer(peer_id): peer_desc = PeerDescriptor(peer_id, blog=blog) self.set_peer(peer_id, peer_desc) else: peer_desc = self.get_peer(peer_id) # set blog peer_desc.blog = blog self.last_downloaded_desc = flag_update and peer_desc or None return peer_desc
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.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 setUp(self): # peer peer_document = FileDocument(PROFILE_TEST, PROFILE_DIRECTORY) peer_document.load() self.peer_desc = PeerDescriptor(PROFILE_TEST, document=peer_document) self.peer_desc.set_shared_files() # filter self.document = FilterDocument(PROFILE_TEST, PROFILE_DIRECTORY) self.document.load()
def on_add(self, evt): dlg = wx.FileDialog( self, message="Add profile ...", defaultDir=get_prefs("profile_dir"), defaultFile="", wildcard="Solipsis file (*.prf)|*.prf", style=wx.OPEN) if dlg.ShowModal() == wx.ID_OK: directory, file_name = os.path.split(dlg.GetPath()[:-4]) peer_desc = PeerDescriptor(file_name, document=FileDocument()) peer_desc.load(directory=directory) blogs = peer_desc.blog loader = peer_desc.document get_facade().fill_data(peer_desc.node_id, loader) get_facade().fill_blog(peer_desc.node_id, blogs) get_facade().fill_shared_files(peer_desc.node_id, loader.get_shared_files()) self.display_profile(peer_desc) self.display_blog(peer_desc) self.display_files(peer_desc)
def setUp(self): write_test_profile() # peer self.peer_desc = PeerDescriptor(PROFILE_TEST) self.peer_desc.load(directory=PROFILE_DIR) self.peer_desc.document.share_files(TEST_DIR, [os.path.join("data", "date.txt"), os.path.join("data", "subdir1")], True) # filter self.document = FilterDocument() self.document.load(FILTER_TEST)
def test_load_and_save(self): peer_desc = PeerDescriptor(PROFILE_TEST) peer_desc.load(directory=PROFILE_DIR) self.assertEquals(peer_desc.blog.count_blogs(), 1) self.assertEquals(peer_desc.document.get_pseudo(), PSEUDO) # change peer_desc.blog.add_blog(u"second blog", PSEUDO) peer_desc.document.set_pseudo(u"yop la hop") peer_desc.save(directory=PROFILE_DIR) # check new_desc = PeerDescriptor(PROFILE_TEST) new_desc.load(directory=PROFILE_DIR) self.assertEquals(new_desc.blog.count_blogs(), 2) self.assertEquals(new_desc.document.get_pseudo(), u"yop la hop")
class MatchTest(unittest.TestCase): def setUp(self): write_test_profile() # peer self.peer_desc = PeerDescriptor(PROFILE_TEST) self.peer_desc.load(directory=PROFILE_DIR) self.peer_desc.document.share_files(TEST_DIR, [os.path.join("data", "date.txt"), os.path.join("data", "subdir1")], True) # filter self.document = FilterDocument() self.document.load(FILTER_TEST) def test_creation(self): match = PeerMatch(self.peer_desc, self.document) self.assertEquals(match.title.get_match(), "Mr") self.assertEquals(match.firstname, False) self.assertEquals(match.lastname.get_match(), "breton") self.assertEquals(match.photo, False) self.assertEquals(match.email, False) self.assertEquals(match.customs['color'].get_match(), u'blue') self.assertEquals(match.files, {}) def test_activated(self): # activate self.document.get_email().activated = True match = PeerMatch(self.peer_desc, self.document) self.assertEquals(match.lastname.get_match(), u'breton') def test_files(self): # add filter for dummy.txt self.document.add_repository(u'Any', FilterValue(value=u'.*\..*', activate=True)) match = PeerMatch(self.peer_desc, self.document) match_files = [file_container.match for file_container in match.files[u'Any']] match_files.sort() self.assertEquals(match_files, ['TOtO.txt', 'date.doc', 'date.txt', "dummy.txt"])
def get_peers(self): """returns Peers""" # lazy initialisation if self.peers != {}: return ContactsMixin.get_peers(self) # full init if not self.config.has_section(SECTION_OTHERS): self.config.add_section(SECTION_OTHERS) options = self.config.options(SECTION_OTHERS) for peer_id in options: # check unicode if isinstance(peer_id, str): peer_id = unicode(peer_id, self.encoding) # get info description = self.config.get(SECTION_OTHERS, peer_id) try: pseudo, state, timestamp = description.split(',') peer_desc = PeerDescriptor(peer_id, state=state) ContactsMixin.set_peer(self, peer_id, peer_desc) peer_desc.load() # TODO: use timestamp except Exception, error: print error, ": peer %s not retreived"% description
def unmark_peer(self, peer_id): """sets new value for unshared file""" self._change_status(peer_id, PeerDescriptor.ANONYMOUS) def _change_status(self, peer_id, status): """mark given peer as Friend, Blacklisted or Anonymous""" assert self.has_peer(peer_id), "no profile for %s"% peer_id peer_desc = self.get_peer(peer_id) peer_desc.state = status return peer_desc def fill_data(self, (peer_id, document)): """stores CacheDocument associated with peer""" if not self.has_peer(peer_id): peer_desc = PeerDescriptor(document.pseudo, document=document) self.set_peer((peer_id, peer_desc)) else: peer_desc = self.get_peer(peer_id) peer_desc.set_document(document) self.last_downloaded_desc = peer_desc return peer_desc def fill_blog(self, (peer_id, blog)): """stores CacheDocument associated with peer""" blog = retro_compatibility(blog) if not isinstance(blog, Blogs): raise TypeError("data expected as AbstractDocument") if not self.has_peer(peer_id): peer_desc = PeerDescriptor(blog.pseudo, blog=blog) self.set_peer((peer_id, peer_desc))