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
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.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 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 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")
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: log(error, ": peer %s not retreived"% description)