예제 #1
0
    def test_set_settings(self):
        """
        Testing whether settings in the API can be successfully set
        """
        download = DownloadConfigInterface()
        download.get_share_mode = lambda: False
        self.session.get_downloads = lambda: [download]

        old_filter_setting = self.session.tribler_config.get_family_filter_enabled(
        )

        def verify_response1(_):
            self.assertNotEqual(
                self.session.tribler_config.get_family_filter_enabled(),
                old_filter_setting)
            self.assertEqual(download.get_seeding_mode(), 'time')
            self.assertEqual(download.get_seeding_time(), 100)

        self.should_check_equality = False
        post_data = json.dumps({
            'general': {
                'family_filter': not old_filter_setting
            },
            'Tribler': {
                'maxuploadrate': '1234'
            },
            'libtorrent': {
                'utp': False,
                'max_download_rate': 50
            },
            'downloadconfig': {
                'seeding_mode': 'time',
                'seeding_time': 100
            }
        })
        yield self.do_request('settings', expected_code=200, request_type='POST', post_data=post_data, raw_data=True) \
            .addCallback(verify_response1)

        def verify_response2(_):
            self.assertEqual(download.get_seeding_mode(), 'ratio')
            self.assertEqual(download.get_seeding_ratio(), 3)

        post_data = json.dumps(
            {'downloadconfig': {
                'seeding_mode': 'ratio',
                'seeding_ratio': 3
            }})
        yield self.do_request('settings', expected_code=200, request_type='POST', post_data=post_data, raw_data=True) \
            .addCallback(verify_response2)

        download.get_share_mode = lambda: True

        def verify_response3(_):
            self.assertNotEqual(download.get_seeding_mode(), 'never')

        post_data = json.dumps({'downloadconfig': {'seeding_mode': 'never'}})
        yield self.do_request('settings', expected_code=200, request_type='POST', post_data=post_data, raw_data=True) \
            .addCallback(verify_response3)