| @@ 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 | ||