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)