@@ 426-461 (lines=36) @@ | ||
423 | self.assertEqual(404, response.code) |
|
424 | ||
425 | ||
426 | class TestEvaluationPlaneHandlerEnabled(AsyncHTTPTestCase): |
|
427 | @classmethod |
|
428 | def setUpClass(cls): |
|
429 | prefix = "__TestEvaluationPlaneHandlerEnabled_" |
|
430 | ||
431 | # create config file |
|
432 | cls.config_file = tempfile.NamedTemporaryFile( |
|
433 | mode="w+t", prefix=prefix, suffix=".conf", delete=False |
|
434 | ) |
|
435 | cls.config_file.write( |
|
436 | "[TabPy]\n" |
|
437 | f"TABPY_EVALUATE_ENABLE = true" |
|
438 | ) |
|
439 | cls.config_file.close() |
|
440 | ||
441 | cls.script = ( |
|
442 | '{"data":{"_arg1":[2,3],"_arg2":[3,-1]},' |
|
443 | '"script":"res=[]\\nfor i in range(len(_arg1)):\\n ' |
|
444 | 'res.append(_arg1[i] * _arg2[i])\\nreturn res"}' |
|
445 | ) |
|
446 | ||
447 | @classmethod |
|
448 | def tearDownClass(cls): |
|
449 | os.remove(cls.config_file.name) |
|
450 | ||
451 | def get_app(self): |
|
452 | self.app = TabPyApp(self.config_file.name) |
|
453 | return self.app._create_tornado_web_app() |
|
454 | ||
455 | def test_evaluation_enabled(self): |
|
456 | response = self.fetch( |
|
457 | "/evaluate", |
|
458 | method="POST", |
|
459 | body=self.script |
|
460 | ) |
|
461 | self.assertEqual(200, response.code) |
|
462 | ||
463 | class TestEvaluationPlaneHandlerMaxRequestSize(AsyncHTTPTestCase): |
|
464 | @classmethod |
|
@@ 293-328 (lines=36) @@ | ||
290 | self.assertEqual(406, response.code) |
|
291 | ||
292 | ||
293 | class TestEvaluationPlaneHandlerDisabledWithoutAuth(AsyncHTTPTestCase): |
|
294 | @classmethod |
|
295 | def setUpClass(cls): |
|
296 | prefix = "__TestEvaluationPlaneHandlerDisabledWithoutAuth_" |
|
297 | ||
298 | # create config file |
|
299 | cls.config_file = tempfile.NamedTemporaryFile( |
|
300 | mode="w+t", prefix=prefix, suffix=".conf", delete=False |
|
301 | ) |
|
302 | cls.config_file.write( |
|
303 | "[TabPy]\n" |
|
304 | f"TABPY_EVALUATE_ENABLE = false" |
|
305 | ) |
|
306 | cls.config_file.close() |
|
307 | ||
308 | cls.script = ( |
|
309 | '{"data":{"_arg1":[2,3],"_arg2":[3,-1]},' |
|
310 | '"script":"res=[]\\nfor i in range(len(_arg1)):\\n ' |
|
311 | 'res.append(_arg1[i] * _arg2[i])\\nreturn res"}' |
|
312 | ) |
|
313 | ||
314 | @classmethod |
|
315 | def tearDownClass(cls): |
|
316 | os.remove(cls.config_file.name) |
|
317 | ||
318 | def get_app(self): |
|
319 | self.app = TabPyApp(self.config_file.name) |
|
320 | return self.app._create_tornado_web_app() |
|
321 | ||
322 | def test_evaluation_disabled_fails(self): |
|
323 | response = self.fetch( |
|
324 | "/evaluate", |
|
325 | method="POST", |
|
326 | body=self.script |
|
327 | ) |
|
328 | self.assertEqual(404, response.code) |
|
329 | ||
330 | ||
331 | class TestEvaluationPlaneHandlerDisabledWithAuth(AsyncHTTPTestCase): |
|
@@ 525-559 (lines=35) @@ | ||
522 | self.assertEqual("Error processing script", message) |
|
523 | ||
524 | ||
525 | class TestEvaluationPlaneHandlerDefault(AsyncHTTPTestCase): |
|
526 | @classmethod |
|
527 | def setUpClass(cls): |
|
528 | prefix = "__TestEvaluationPlaneHandlerDefault_" |
|
529 | ||
530 | # create config file |
|
531 | cls.config_file = tempfile.NamedTemporaryFile( |
|
532 | mode="w+t", prefix=prefix, suffix=".conf", delete=False |
|
533 | ) |
|
534 | cls.config_file.write( |
|
535 | "[TabPy]" |
|
536 | ) |
|
537 | cls.config_file.close() |
|
538 | ||
539 | cls.script = ( |
|
540 | '{"data":{"_arg1":[2,3],"_arg2":[3,-1]},' |
|
541 | '"script":"res=[]\\nfor i in range(len(_arg1)):\\n ' |
|
542 | 'res.append(_arg1[i] * _arg2[i])\\nreturn res"}' |
|
543 | ) |
|
544 | ||
545 | @classmethod |
|
546 | def tearDownClass(cls): |
|
547 | os.remove(cls.config_file.name) |
|
548 | ||
549 | def get_app(self): |
|
550 | self.app = TabPyApp(self.config_file.name) |
|
551 | return self.app._create_tornado_web_app() |
|
552 | ||
553 | def test_evaluation_default(self): |
|
554 | response = self.fetch( |
|
555 | "/evaluate", |
|
556 | method="POST", |
|
557 | body=self.script |
|
558 | ) |
|
559 | self.assertEqual(200, response.code) |
|
560 |