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