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'])
예제 #3
0
 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
예제 #4
0
 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()
예제 #7
0
 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"])
예제 #11
0
 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
예제 #12
0
    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))