@@ 424-459 (lines=36) @@ | ||
421 | self.assertEqual(404, response.code) |
|
422 | ||
423 | ||
424 | class TestEvaluationPlaneHandlerEnabled(AsyncHTTPTestCase): |
|
425 | @classmethod |
|
426 | def setUpClass(cls): |
|
427 | prefix = "__TestEvaluationPlaneHandlerEnabled_" |
|
428 | ||
429 | # create config file |
|
430 | cls.config_file = tempfile.NamedTemporaryFile( |
|
431 | mode="w+t", prefix=prefix, suffix=".conf", delete=False |
|
432 | ) |
|
433 | cls.config_file.write( |
|
434 | "[TabPy]\n" |
|
435 | f"TABPY_EVALUATE_ENABLE = true" |
|
436 | ) |
|
437 | cls.config_file.close() |
|
438 | ||
439 | cls.script = ( |
|
440 | '{"data":{"_arg1":[2,3],"_arg2":[3,-1]},' |
|
441 | '"script":"res=[]\\nfor i in range(len(_arg1)):\\n ' |
|
442 | 'res.append(_arg1[i] * _arg2[i])\\nreturn res"}' |
|
443 | ) |
|
444 | ||
445 | @classmethod |
|
446 | def tearDownClass(cls): |
|
447 | os.remove(cls.config_file.name) |
|
448 | ||
449 | def get_app(self): |
|
450 | self.app = TabPyApp(self.config_file.name) |
|
451 | return self.app._create_tornado_web_app() |
|
452 | ||
453 | def test_evaluation_enabled(self): |
|
454 | response = self.fetch( |
|
455 | "/evaluate", |
|
456 | method="POST", |
|
457 | body=self.script |
|
458 | ) |
|
459 | self.assertEqual(200, response.code) |
|
460 | ||
461 | ||
462 | class TestEvaluationPlaneHandlerDefault(AsyncHTTPTestCase): |
|
@@ 291-326 (lines=36) @@ | ||
288 | self.assertEqual(406, response.code) |
|
289 | ||
290 | ||
291 | class TestEvaluationPlaneHandlerDisabledWithoutAuth(AsyncHTTPTestCase): |
|
292 | @classmethod |
|
293 | def setUpClass(cls): |
|
294 | prefix = "__TestEvaluationPlaneHandlerDisabledWithoutAuth_" |
|
295 | ||
296 | # create config file |
|
297 | cls.config_file = tempfile.NamedTemporaryFile( |
|
298 | mode="w+t", prefix=prefix, suffix=".conf", delete=False |
|
299 | ) |
|
300 | cls.config_file.write( |
|
301 | "[TabPy]\n" |
|
302 | f"TABPY_EVALUATE_ENABLE = false" |
|
303 | ) |
|
304 | cls.config_file.close() |
|
305 | ||
306 | cls.script = ( |
|
307 | '{"data":{"_arg1":[2,3],"_arg2":[3,-1]},' |
|
308 | '"script":"res=[]\\nfor i in range(len(_arg1)):\\n ' |
|
309 | 'res.append(_arg1[i] * _arg2[i])\\nreturn res"}' |
|
310 | ) |
|
311 | ||
312 | @classmethod |
|
313 | def tearDownClass(cls): |
|
314 | os.remove(cls.config_file.name) |
|
315 | ||
316 | def get_app(self): |
|
317 | self.app = TabPyApp(self.config_file.name) |
|
318 | return self.app._create_tornado_web_app() |
|
319 | ||
320 | def test_evaluation_disabled_fails(self): |
|
321 | response = self.fetch( |
|
322 | "/evaluate", |
|
323 | method="POST", |
|
324 | body=self.script |
|
325 | ) |
|
326 | self.assertEqual(404, response.code) |
|
327 | ||
328 | ||
329 | class TestEvaluationPlaneHandlerDisabledWithAuth(AsyncHTTPTestCase): |
|
@@ 462-496 (lines=35) @@ | ||
459 | self.assertEqual(200, response.code) |
|
460 | ||
461 | ||
462 | class TestEvaluationPlaneHandlerDefault(AsyncHTTPTestCase): |
|
463 | @classmethod |
|
464 | def setUpClass(cls): |
|
465 | prefix = "__TestEvaluationPlaneHandlerDefault_" |
|
466 | ||
467 | # create config file |
|
468 | cls.config_file = tempfile.NamedTemporaryFile( |
|
469 | mode="w+t", prefix=prefix, suffix=".conf", delete=False |
|
470 | ) |
|
471 | cls.config_file.write( |
|
472 | "[TabPy]" |
|
473 | ) |
|
474 | cls.config_file.close() |
|
475 | ||
476 | cls.script = ( |
|
477 | '{"data":{"_arg1":[2,3],"_arg2":[3,-1]},' |
|
478 | '"script":"res=[]\\nfor i in range(len(_arg1)):\\n ' |
|
479 | 'res.append(_arg1[i] * _arg2[i])\\nreturn res"}' |
|
480 | ) |
|
481 | ||
482 | @classmethod |
|
483 | def tearDownClass(cls): |
|
484 | os.remove(cls.config_file.name) |
|
485 | ||
486 | def get_app(self): |
|
487 | self.app = TabPyApp(self.config_file.name) |
|
488 | return self.app._create_tornado_web_app() |
|
489 | ||
490 | def test_evaluation_default(self): |
|
491 | response = self.fetch( |
|
492 | "/evaluate", |
|
493 | method="POST", |
|
494 | body=self.script |
|
495 | ) |
|
496 | self.assertEqual(200, response.code) |
|
497 |