Code Duplication    Length = 35-36 lines in 3 locations

tests/unit/server_tests/test_evaluation_plane_handler.py 3 locations

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