Exemple #1
0
    def subtest_add_content_dir(self,merkle=True):
        """ Add a single dir to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        dn = os.path.join(os.getcwd(),"contentdir")
        t.add_content(dn,"dirintorrent")
        t.set_tracker(TRACKER)
        t.finalize()

        exps = 0L
        for f in os.listdir("contentdir"):
            if f.startswith('.'):
                continue
            p = os.path.join("contentdir",f)
            s = os.path.getsize(p)
            exps += s
            print "test: expected size",f,s

        print "test: expected total size of files in torrent",exps

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        
        self.assert_(metainfo['info']['name'] == 'dirintorrent')
        reals = 0L
        for file in metainfo['info']['files']:
            s = file['length']
            print "test: real size",file['path'],s
            reals += s
            
        print "test: real size of files in torrent",reals
            
        self.assert_(exps == reals)
Exemple #2
0
 def subtest_add_content_file(self,merkle=True):
     """ Add a single file to a TorrentDef """
     t = TorrentDef()
     t.set_create_merkle_torrent(merkle)
     fn = os.path.join(os.getcwd(),"file.wmv")
     t.add_content(fn)
     t.set_tracker(TRACKER)
     t.finalize()
     
     s = os.path.getsize("file.wmv")
     
     metainfo = t.get_metainfo()
     self.general_check(metainfo)
     
     self.assert_(metainfo['info']['name'] == "file.wmv")
     self.assert_(metainfo['info']['length'] == s)
     
     """
Exemple #3
0
 def subtest_add_content_file_playtime(self,merkle=True):
     """ Add a single file with playtime to a TorrentDef """
     t = TorrentDef()
     t.set_create_merkle_torrent(merkle)
     fn = os.path.join(os.getcwd(),"file.wmv")
     t.add_content(fn,playtime=PLAYTIME)
     t.set_tracker(TRACKER)
     t.finalize()
     
     s = os.path.getsize("file.wmv")
     
     metainfo = t.get_metainfo()
     self.general_check(metainfo)
     self.assert_(metainfo['info']['playtime']==PLAYTIME)
     azprop = metainfo['azureus_properties']
     content = azprop['Content']
     realspeedbps = content['Speed Bps']
     expspeedbps = s/PLAYTIME_SECS
     self.assert_(realspeedbps == expspeedbps)
Exemple #4
0
    def subtest_add_content_dir_and_file(self,merkle=True):
        """ Add a single dir and single file to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        
        dn = os.path.join(os.getcwd(),"contentdir")
        t.add_content(dn,"dirintorrent")
        
        fn = os.path.join(os.getcwd(),"file.wmv")
        t.add_content(fn,os.path.join("dirintorrent","file.wmv"))
        
        t.set_tracker(TRACKER)
        t.finalize()

        # Check
        exps = os.path.getsize(fn)
        for f in os.listdir("contentdir"):
            if f.startswith('.'):
                continue
            p = os.path.join("contentdir",f)
            exps += os.path.getsize(p) 

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        self.assert_(metainfo['info']['name'] == 'dirintorrent')
        
        reals = 0L
        for file in metainfo['info']['files']:
            reals += file['length']
        self.assert_(exps == reals)
    def subtest_add_content_dir_and_file(self, merkle=True):
        """ Add a single dir and single file to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)

        dn = os.path.join(os.getcwd(), "contentdir")
        t.add_content(dn, "dirintorrent")

        fn = os.path.join(os.getcwd(), "file.wmv")
        t.add_content(fn, os.path.join("dirintorrent", "file.wmv"))

        t.set_tracker(TRACKER)
        t.finalize()

        # Check
        exps = os.path.getsize(fn)
        for f in os.listdir("contentdir"):
            if f.startswith('.'):
                continue
            p = os.path.join("contentdir", f)
            exps += os.path.getsize(p)

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        self.assert_(metainfo['info']['name'] == 'dirintorrent')

        reals = 0L
        for file in metainfo['info']['files']:
            reals += file['length']
        self.assert_(exps == reals)
Exemple #6
0
    def test_ns_metadata(self):
        dummydata = "HalloWereld"
        t = TorrentDef()
        t.set_metadata(dummydata)
        fn = os.path.join(os.getcwd(),"file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        t.finalize()

        [handle,filename] = tempfile.mkstemp()
        os.close(handle)
        t.save(filename)
        
        t2 = TorrentDef.load(filename)
        self.assert_(t2.get_metadata() == dummydata)
Exemple #7
0
    def subtest_add_content_piece_length(self,merkle=True):
        """ Add a single file with piece length to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(),"file.wmv")
        t.add_content(fn)
        t.set_piece_length(2 ** 16)
        t.set_tracker(TRACKER)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        self.assert_(metainfo['info']['piece length'] == 2 ** 16)
Exemple #8
0
    def subtest_add_content_httpseeds(self,merkle=True):
        """ Add a single file with BitTornado httpseeds to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(),"file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        expseeds = ['http://www.cs.vu.nl/index.html','http://www.st.ewi.tudelft.nl/index.html']
        t.set_httpseeds(expseeds)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        realseeds = metainfo['httpseeds']
        self.assert_(realseeds == expseeds)
Exemple #9
0
    def subtest_add_content_file_thumbnail(self,merkle=True):
        """ Add a single file with thumbnail to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(),"file.wmv")
        thumbfn = os.path.join(os.getcwd(),"thumb.jpg")
        t.add_content(fn)
        t.set_thumbnail(thumbfn)
        t.set_tracker(TRACKER)
        t.finalize()

        f = open(thumbfn,"rb")
        expthumb = f.read()
        f.close()
        
        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        azprop = metainfo['azureus_properties']
        content = azprop['Content']
        realthumb = content['Thumbnail']
        self.assert_(realthumb == expthumb)
    def subtest_add_content_piece_length(self, merkle=True):
        """ Add a single file with piece length to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(), "file.wmv")
        t.add_content(fn)
        t.set_piece_length(2**16)
        t.set_tracker(TRACKER)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        self.assert_(metainfo['info']['piece length'] == 2**16)
    def subtest_add_content_torrentsig(self, merkle=True):
        """ Add a single file to a TorrentDef and sign it """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(), "file.wmv")
        kpfn = os.path.join(os.getcwd(), "ec.pem")
        t.add_content(fn)
        t.set_signature_keypair_filename(kpfn)
        t.set_tracker(TRACKER)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        ret = verify_torrent_signature(metainfo)
        self.assert_(ret == True)
    def subtest_add_content_httpseeds(self, merkle=True):
        """ Add a single file with BitTornado httpseeds to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(), "file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        expseeds = [
            'http://www.cs.vu.nl/index.html',
            'http://www.st.ewi.tudelft.nl/index.html'
        ]
        t.set_httpseeds(expseeds)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        realseeds = metainfo['httpseeds']
        self.assert_(realseeds == expseeds)
    def subtest_add_content_announce_list(self, merkle=True):
        """ Add a single file with announce-list to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(), "file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        exphier = [[TRACKER],
                   [
                       'http://tracker1.tribler.org:6969/announce',
                       'http://tracker2.tribler.org:7070/ann'
                   ],
                   [
                       'http://www.cs.vu.nl', 'http://www.st.ewi.tudelft.nl',
                       'http://www.vuze.com'
                   ]]
        t.set_tracker_hierarchy(exphier)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        realhier = metainfo['announce-list']
        self.assert_(realhier == exphier)
    def subtest_add_content_file_thumbnail(self, merkle=True):
        """ Add a single file with thumbnail to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(), "file.wmv")
        thumbfn = os.path.join(os.getcwd(), "thumb.jpg")
        t.add_content(fn)
        t.set_thumbnail(thumbfn)
        t.set_tracker(TRACKER)
        t.finalize()

        f = open(thumbfn, "rb")
        expthumb = f.read()
        f.close()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        azprop = metainfo['azureus_properties']
        content = azprop['Content']
        realthumb = content['Thumbnail']
        self.assert_(realthumb == expthumb)
    def subtest_add_content_dir_playtime(self, merkle=True):
        """ Add a single dir to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn1 = os.path.join(os.getcwd(), "contentdir", "file.avi")
        fn2 = os.path.join(os.getcwd(), "contentdir", "file.txt")
        t.add_content(fn1,
                      os.path.join("dirintorrent", "file.avi"),
                      playtime=PLAYTIME)
        t.add_content(fn2, os.path.join("dirintorrent", "file.txt"))
        t.set_tracker(TRACKER)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        self.assert_(metainfo['info']['name'] == 'dirintorrent')

        s = os.path.getsize(fn1)

        files = metainfo['info']['files']
        for file in files:
            if file['path'][0] == "file.avi":
                self.assert_(file['playtime'] == PLAYTIME)

        azprop = metainfo['azureus_properties']
        content = azprop['Content']
        realspeedbps = content['Speed Bps']
        expspeedbps = s / PLAYTIME_SECS
        self.assert_(realspeedbps == expspeedbps)
    def subtest_add_content_file_playtime(self, merkle=True):
        """ Add a single file with playtime to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(), "file.wmv")
        t.add_content(fn, playtime=PLAYTIME)
        t.set_tracker(TRACKER)
        t.finalize()

        s = os.path.getsize("file.wmv")

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        self.assert_(metainfo['info']['playtime'] == PLAYTIME)
        azprop = metainfo['azureus_properties']
        content = azprop['Content']
        realspeedbps = content['Speed Bps']
        expspeedbps = s / PLAYTIME_SECS
        self.assert_(realspeedbps == expspeedbps)
Exemple #17
0
    def subtest_add_content_dir_playtime(self,merkle=True):
        """ Add a single dir to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn1 = os.path.join(os.getcwd(),"contentdir","file.avi")
        fn2 = os.path.join(os.getcwd(),"contentdir","file.txt")
        t.add_content(fn1,os.path.join("dirintorrent","file.avi"),playtime=PLAYTIME)
        t.add_content(fn2,os.path.join("dirintorrent","file.txt"))
        t.set_tracker(TRACKER)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        self.assert_(metainfo['info']['name'] == 'dirintorrent')

        s = os.path.getsize(fn1)
        
        files = metainfo['info']['files']
        for file in files:
            if file['path'][0] == "file.avi":
                self.assert_(file['playtime']==PLAYTIME)
        
        azprop = metainfo['azureus_properties']
        content = azprop['Content']
        realspeedbps = content['Speed Bps']
        expspeedbps = s/PLAYTIME_SECS
        self.assert_(realspeedbps == expspeedbps)
    def subtest_add_content_file_save(self, merkle=True):
        """ Add a single file to a TorrentDef and save the latter"""
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(), "file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        t.finalize()

        tfn = os.path.join(os.getcwd(), "gen.torrent")
        t.save(tfn)

        f = open(tfn, "rb")
        bdata = f.read()
        f.close()
        os.remove(tfn)

        data = bdecode(bdata)
        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        self.assert_(metainfo == data)
Exemple #19
0
    def subtest_add_content_announce_list(self,merkle=True):
        """ Add a single file with announce-list to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(),"file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        exphier = [[TRACKER],['http://tracker1.tribler.org:6969/announce','http://tracker2.tribler.org:7070/ann'],['http://www.cs.vu.nl','http://www.st.ewi.tudelft.nl','http://www.vuze.com']]
        t.set_tracker_hierarchy(exphier)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        realhier = metainfo['announce-list']
        self.assert_(realhier == exphier)
    def test_ns_metadata(self):
        dummydata = "HalloWereld"
        t = TorrentDef()
        t.set_metadata(dummydata)
        fn = os.path.join(os.getcwd(), "file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        t.finalize()

        [handle, filename] = tempfile.mkstemp()
        os.close(handle)
        t.save(filename)

        t2 = TorrentDef.load(filename)
        self.assert_(t2.get_metadata() == dummydata)
Exemple #21
0
    def subtest_add_content_torrentsig(self,merkle=True):
        """ Add a single file to a TorrentDef and sign it """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(),"file.wmv")
        kpfn = os.path.join(os.getcwd(),"ec.pem")
        t.add_content(fn)
        t.set_signature_keypair_filename(kpfn)
        t.set_tracker(TRACKER)
        t.finalize()

        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        ret = verify_torrent_signature(metainfo)
        self.assert_(ret == True)
    def subtest_add_content_file(self, merkle=True):
        """ Add a single file to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(), "file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        t.finalize()

        s = os.path.getsize("file.wmv")

        metainfo = t.get_metainfo()
        self.general_check(metainfo)

        self.assert_(metainfo['info']['name'] == "file.wmv")
        self.assert_(metainfo['info']['length'] == s)
        """
Exemple #23
0
    def subtest_add_content_file_save(self,merkle=True):
        """ Add a single file to a TorrentDef and save the latter"""
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        fn = os.path.join(os.getcwd(),"file.wmv")
        t.add_content(fn)
        t.set_tracker(TRACKER)
        t.finalize()

        tfn = os.path.join(os.getcwd(),"gen.torrent")
        t.save(tfn)
        
        f = open(tfn,"rb")
        bdata = f.read()
        f.close()
        os.remove(tfn)
        
        data = bdecode(bdata)
        metainfo = t.get_metainfo()
        self.general_check(metainfo)
        self.assert_(metainfo == data)
Exemple #24
0
import binascii

from Tribler.Core.API import TorrentDef
from Tribler.Core.Overlay.permid import verify_torrent_signature

if len(argv) == 1:
    print '%s file1.torrent file2.torrent file3.torrent ...' % argv[0]
    print
    exit(2)  # common exit code for syntax error

for metainfo_name in argv[1:]:
    if metainfo_name.endswith(".url"):
        f = open(metainfo_name, "rb")
        url = f.read()
        f.close()
        tdef = TorrentDef.load_from_url(url)
    else:
        tdef = TorrentDef.load(metainfo_name)
    metainfo = tdef.get_metainfo()
    infohash = tdef.get_infohash()

    print "metainfo:", metainfo.keys()
    #print "metainfo creation date",metainfo['creation date']
    if 'azureus_properties' in metainfo:
        azprop = metainfo['azureus_properties']
        print "azprop:", azprop.keys()
        if 'Content' in azprop:
            content = azprop['Content']
            print "content:", content.keys()
            for key in content.keys():
                if key.lower() != 'thumbnail':
Exemple #25
0
import binascii

from Tribler.Core.API import TorrentDef
from Tribler.Core.Overlay.permid import verify_torrent_signature

if len(argv) == 1:
    print '%s file1.torrent file2.torrent file3.torrent ...' % argv[0]
    print
    exit(2) # common exit code for syntax error

for metainfo_name in argv[1:]:
    if metainfo_name.endswith(".url"):
        f = open(metainfo_name,"rb")
        url = f.read()
        f.close()
        tdef = TorrentDef.load_from_url(url)
    else:
        tdef = TorrentDef.load(metainfo_name)
    metainfo = tdef.get_metainfo()
    infohash = tdef.get_infohash()

    print "metainfo:",metainfo.keys()
    #print "metainfo creation date",metainfo['creation date']
    if 'azureus_properties' in metainfo:
        azprop = metainfo['azureus_properties']
        print "azprop:",azprop.keys()
        if 'Content' in azprop:
            content = azprop['Content']
            print "content:",content.keys()
            for key in content.keys():
                if key.lower() != 'thumbnail':
    def subtest_add_content_dir(self, merkle=True):
        """ Add a single dir to a TorrentDef """
        t = TorrentDef()
        t.set_create_merkle_torrent(merkle)
        dn = os.path.join(os.getcwd(), "contentdir")
        t.add_content(dn, "dirintorrent")
        t.set_tracker(TRACKER)
        t.finalize()

        exps = 0L
        for f in os.listdir("contentdir"):
            if f.startswith('.'):
                continue
            p = os.path.join("contentdir", f)
            s = os.path.getsize(p)
            exps += s
            print "test: expected size", f, s

        print "test: expected total size of files in torrent", exps

        metainfo = t.get_metainfo()
        self.general_check(metainfo)

        self.assert_(metainfo['info']['name'] == 'dirintorrent')
        reals = 0L
        for file in metainfo['info']['files']:
            s = file['length']
            print "test: real size", file['path'], s
            reals += s

        print "test: real size of files in torrent", reals

        self.assert_(exps == reals)