1from flexget.components.variables.variables import Variables 2from flexget.manager import Session 3from flexget.utils import json 4 5 6class TestVariablesAPI: 7 config = 'tasks: {}' 8 9 variables_dict = {'test_variable_db': True} 10 11 def test_variables_get(self, api_client): 12 with Session() as session: 13 s = Variables(variables=self.variables_dict) 14 session.add(s) 15 16 rsp = api_client.get('/variables/') 17 assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code 18 assert json.loads(rsp.get_data(as_text=True)) == self.variables_dict 19 20 def test_variables_put(self, api_client): 21 rsp = api_client.get('/variables/') 22 assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code 23 assert json.loads(rsp.get_data(as_text=True)) == {} 24 25 rsp = api_client.json_put('/variables/', data=json.dumps(self.variables_dict)) 26 assert rsp.status_code == 201, 'Response code is %s' % rsp.status_code 27 assert json.loads(rsp.get_data(as_text=True)) == self.variables_dict 28 29 rsp = api_client.get('/variables/') 30 assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code 31 assert json.loads(rsp.get_data(as_text=True)) == self.variables_dict 32 33 def test_variables_patch(self, api_client): 34 data = {'a': 'b', 'c': 'd'} 35 api_client.json_put('/variables/', data=json.dumps(data)) 36 new_data = {'a': [1, 2, 3], 'foo': 'bar'} 37 38 rsp = api_client.json_patch('/variables/', data=json.dumps(new_data)) 39 assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code 40 assert json.loads(rsp.get_data(as_text=True)) == {'a': [1, 2, 3], 'foo': 'bar', 'c': 'd'} 41