def test_import_module_functions(self): testcase1 = { "import_module_functions": ["tests.data.custom_functions"], "variable_binds": [ {"TOKEN": "debugtalk"}, {"random": "${gen_random_string(5)}"}, {"data": '{"name": "user", "password": "******"}'}, {"authorization": "${gen_md5($TOKEN, $data, $random)}"} ] } testcase2 = self.testcases["bind_module_functions"] for testcase in [testcase1, testcase2]: module_functions = testcase.get('import_module_functions', []) self.context.import_module_functions(module_functions) variable_binds = testcase['variable_binds'] self.context.bind_variables(variable_binds) context_variables = self.context.get_testcase_variables_mapping() self.assertIn("TOKEN", context_variables) TOKEN = context_variables["TOKEN"] self.assertEqual(TOKEN, "debugtalk") self.assertIn("random", context_variables) self.assertIsInstance(context_variables["random"], str) self.assertEqual(len(context_variables["random"]), 5) random = context_variables["random"] self.assertIn("data", context_variables) data = context_variables["data"] self.assertIn("authorization", context_variables) self.assertEqual(len(context_variables["authorization"]), 32) authorization = context_variables["authorization"] self.assertEqual(utils.gen_md5(TOKEN, data, random), authorization)
def prepare_headers(self, data=""): token = api_server.TOKEN random_str = utils.gen_random_string(5) authorization = utils.gen_md5([token, data, random_str]) headers = {'authorization': authorization, 'random': random_str} return headers
def prepare_headers(self, data=""): token = api_server.TOKEN data = utils.handle_req_data(data) random_str = utils.gen_random_string(5) authorization = utils.gen_md5(token, data, random_str) headers = { 'authorization': authorization, 'random': random_str } return headers
def wrapper(*args, **kwds): if not AUTHENTICATION: return func(*args, **kwds) try: req_headers = request.headers req_authorization = req_headers['Authorization'] random_str = req_headers['Random'] data = utils.handle_req_data(request.data) authorization = utils.gen_md5(TOKEN, data, random_str) assert authorization == req_authorization return func(*args, **kwds) except (KeyError, AssertionError): return "Authorization failed!", 403
def test_context_bind_lambda_functions_with_import(self): testcase1 = { "requires": ["random", "string", "hashlib"], "function_binds": { "gen_random_string": "lambda str_len: ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(str_len))", "gen_md5": "lambda *str_args: hashlib.md5(''.join(str_args).encode('utf-8')).hexdigest()" }, "variable_binds": [{ "TOKEN": "debugtalk" }, { "random": "${gen_random_string(5)}" }, { "data": '{"name": "user", "password": "******"}' }, { "authorization": "${gen_md5($TOKEN, $data, $random)}" }] } testcase2 = self.testcases["bind_lambda_functions_with_import"] for testcase in [testcase1, testcase2]: requires = testcase.get('requires', []) self.context.import_requires(requires) function_binds = testcase.get('function_binds', {}) self.context.bind_functions(function_binds) variable_binds = testcase['variable_binds'] self.context.register_variables_config(variable_binds) context_variables = self.context._get_evaluated_testcase_variables( ) self.assertIn("TOKEN", context_variables) TOKEN = context_variables["TOKEN"] self.assertEqual(TOKEN, "debugtalk") self.assertIn("random", context_variables) self.assertIsInstance(context_variables["random"], str) self.assertEqual(len(context_variables["random"]), 5) random = context_variables["random"] self.assertIn("data", context_variables) data = context_variables["data"] self.assertIn("authorization", context_variables) self.assertEqual(len(context_variables["authorization"]), 32) authorization = context_variables["authorization"] self.assertEqual(utils.gen_md5(TOKEN, data, random), authorization)
def wrapper(*args, **kwds): if not AUTHENTICATION: return func(*args, **kwds) try: req_headers = request.headers req_authorization = req_headers['Authorization'] random_str = req_headers['Random'] data = utils.handle_req_data(request.data) authorization = utils.gen_md5(TOKEN, data, random_str) assert authorization == req_authorization return func(*args, **kwds) except (KeyError, AssertionError): result = {'success': False, 'msg': "Authorization failed!"} response = make_response(json.dumps(result), 403) response.headers["Content-Type"] = "application/json" return response
def test_context_bind_lambda_functions_with_import(self): testcase1 = { "requires": ["random", "string", "hashlib"], "function_binds": { "gen_random_string": "lambda str_len: ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(str_len))", "gen_md5": "lambda *str_args: hashlib.md5(''.join(str_args).encode('utf-8')).hexdigest()" }, "variable_binds": [ {"TOKEN": "debugtalk"}, {"random": "${gen_random_string(5)}"}, {"data": '{"name": "user", "password": "******"}'}, {"authorization": "${gen_md5($TOKEN, $data, $random)}"} ] } testcase2 = self.testcases["bind_lambda_functions_with_import"] for testcase in [testcase1, testcase2]: requires = testcase.get('requires', []) self.context.import_requires(requires) function_binds = testcase.get('function_binds', {}) self.context.bind_functions(function_binds) variable_binds = testcase['variable_binds'] self.context.bind_variables(variable_binds) context_variables = self.context.get_testcase_variables_mapping() self.assertIn("TOKEN", context_variables) TOKEN = context_variables["TOKEN"] self.assertEqual(TOKEN, "debugtalk") self.assertIn("random", context_variables) self.assertIsInstance(context_variables["random"], str) self.assertEqual(len(context_variables["random"]), 5) random = context_variables["random"] self.assertIn("data", context_variables) data = context_variables["data"] self.assertIn("authorization", context_variables) self.assertEqual(len(context_variables["authorization"]), 32) authorization = context_variables["authorization"] self.assertEqual(utils.gen_md5(TOKEN, data, random), authorization)
def test_import_module_items(self): testcase1 = { "import_module_items": ["tests.data.debugtalk"], "variable_binds": [{ "TOKEN": "debugtalk" }, { "random": "${gen_random_string(5)}" }, { "data": '{"name": "user", "password": "******"}' }, { "authorization": "${gen_md5($TOKEN, $data, $random)}" }] } testcase2 = self.testcases["bind_module_functions"] for testcase in [testcase1, testcase2]: module_items = testcase.get('import_module_items', []) self.context.import_module_items(module_items) variable_binds = testcase['variable_binds'] self.context.bind_variables(variable_binds) context_variables = self.context.get_testcase_variables_mapping() self.assertIn("TOKEN", context_variables) TOKEN = context_variables["TOKEN"] self.assertEqual(TOKEN, "debugtalk") self.assertIn("random", context_variables) self.assertIsInstance(context_variables["random"], str) self.assertEqual(len(context_variables["random"]), 5) random = context_variables["random"] self.assertIn("data", context_variables) data = context_variables["data"] self.assertIn("authorization", context_variables) self.assertEqual(len(context_variables["authorization"]), 32) authorization = context_variables["authorization"] self.assertEqual(utils.gen_md5(TOKEN, data, random), authorization) self.assertIn("SECRET_KEY", context_variables) SECRET_KEY = context_variables["SECRET_KEY"] self.assertEqual(SECRET_KEY, "DebugTalk")
def test_import_module_functions(self): testcase1 = { "import_module_functions": ["test.data.custom_functions"], "variable_binds": [{ "TOKEN": "debugtalk" }, { "random": "${gen_random_string(5)}" }, { "data": '{"name": "user", "password": "******"}' }, { "authorization": "${gen_md5($TOKEN, $data, $random)}" }] } testcase2 = self.testcases["bind_module_functions"] for testcase in [testcase1, testcase2]: module_functions = testcase.get('import_module_functions', []) self.context.import_module_functions(module_functions) variable_binds = testcase['variable_binds'] self.context.register_variables_config(variable_binds) context_variables = self.context._get_evaluated_testcase_variables( ) self.assertIn("TOKEN", context_variables) TOKEN = context_variables["TOKEN"] self.assertEqual(TOKEN, "debugtalk") self.assertIn("random", context_variables) self.assertIsInstance(context_variables["random"], str) self.assertEqual(len(context_variables["random"]), 5) random = context_variables["random"] self.assertIn("data", context_variables) data = context_variables["data"] self.assertIn("authorization", context_variables) self.assertEqual(len(context_variables["authorization"]), 32) authorization = context_variables["authorization"] self.assertEqual(utils.gen_md5(TOKEN, data, random), authorization)