Exemple #1
0
    def setUp(self, autoload_discovery=True):
        yield super(TestBoostingManagerError, self).setUp()

        self.session.open_dbhandler = lambda _: True
        self.session.get_libtorrent = lambda: True
        self.session.lm.ltmgr = MockLtSession()

        self.boost_setting = bm.BoostingSettings(self.session)
        self.boost_setting.load_config = False
        self.boost_setting.initial_logging_interval = 900
        self.boost_setting.check_dependencies = False
        self.boosting_manager = bm.BoostingManager(self.session,
                                                   self.boost_setting)
        self.session.lm.boosting_manager = self.boosting_manager
Exemple #2
0
    def test_logging(self):
        self.session.open_dbhandler = lambda _: None

        infohash_1 = "a" * 20
        infohash_2 = "b" * 20
        torrents = {
            infohash_1: {
                "last_seeding_stats": {
                    "time_seeding": 100,
                    "value": 5
                }
            },
            infohash_2: {
                "last_seeding_stats": {}
            }
        }
        self.session.lm.ltmgr = MockLtSession()

        boost_man = bm.BoostingManager(self.session, self.bsettings)
        boost_man.torrents = torrents

        boost_man.session.lm.ltmgr.get_session().get_torrents = \
            lambda: [MockLtTorrent(binascii.hexlify(infohash_1)),
                     MockLtTorrent(binascii.hexlify(infohash_2))]

        boost_man.log_statistics()
        boost_man.cancel_all_pending_tasks()
Exemple #3
0
    def test_load_default(self):
        """
        Test load default configuration in BoostingManager
        """
        self.bsettings.load_config = True
        self.bsettings.auto_start_source = False
        self.bsettings.initial_swarm_interval = 9000
        self.bsettings.initial_tracker_interval = 9000
        self.bsettings.initial_logging_interval = 9000
        self.session.open_dbhandler = lambda _: None
        self.session.lm.ltmgr = MockLtSession()

        # it will automatically load the default configuration
        boost_man = bm.BoostingManager(self.session, self.bsettings)

        # def validate(d_defer):
        self.assertEqual(
            self.session.config.get_credit_mining_source_interval(),
            boost_man.settings.source_interval)
        self.assertEqual(
            self.session.config.get_credit_mining_archive_sources(), [
                source_to_string(src.source)
                for src in boost_man.boosting_sources.values() if src.archive
            ])

        boost_man.cancel_all_pending_tasks()
Exemple #4
0
    def setUp(self, autoload_discovery=True):
        yield super(TestBoostingManagerUtilities, self).setUp()

        self.session.get_libtorrent = lambda: True

        self.bsettings = bm.BoostingSettings(SeederRatioPolicy(self.session))
        self.bsettings.credit_mining_path = self.session_base_dir
        self.bsettings.load_config = False
        self.bsettings.check_dependencies = False
        self.bsettings.initial_logging_interval = 900
Exemple #5
0
    def test_update_statistics(self):
        """
        test updating statistics of a torrent (pick a new one)
        """
        self.session.open_dbhandler = lambda _: None

        infohash_1 = "a" * 20
        infohash_2 = "b" * 20
        torrents = {
            infohash_1: {
                "last_seeding_stats": {
                    "time_seeding": 100,
                    "value": 5
                }
            },
            infohash_2: {
                "last_seeding_stats": {}
            }
        }

        new_seeding_stats = {"time_seeding": 110, "value": 1}
        new_seeding_stats_unexist = {"time_seeding": 10, "value": 8}

        self.session.lm.ltmgr = MockLtSession()

        boost_man = bm.BoostingManager(self.session, self.bsettings)
        boost_man.torrents = torrents

        boost_man.update_torrent_stats(infohash_1, new_seeding_stats)
        self.assertEqual(
            boost_man.torrents[infohash_1]['last_seeding_stats']['value'], 1)

        boost_man.update_torrent_stats(infohash_2, new_seeding_stats_unexist)
        self.assertEqual(
            boost_man.torrents[infohash_2]['last_seeding_stats']['value'], 8)

        boost_man.cancel_all_pending_tasks()