Code Duplication    Length = 35-36 lines in 3 locations

tests/unit/server_tests/test_evaluation_plane_handler.py 3 locations

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