Code Duplication    Length = 18-21 lines in 2 locations

tests/test_flask_ext.py 2 locations

@@ 549-569 (lines=21) @@
546
        limiter = Limiter(app, key_func=get_remote_address)
547
548
        @app.route("/limited")
549
        @limiter.shared_limit("1 per day", "test_scope")
550
        def limited_route():
551
            return "passed"
552
553
        @app.route("/unlimited")
554
        @limiter.shared_limit(
555
            "1 per day", "test_scope", exempt_when=lambda: True
556
        )
557
        def never_limited_route():
558
            return "should always pass"
559
560
        is_exempt = False
561
562
        @app.route("/conditional")
563
        @limiter.shared_limit(
564
            "1 per day", "test_scope", exempt_when=lambda: is_exempt
565
        )
566
        def conditionally_limited_route():
567
            return "conditional"
568
569
        with app.test_client() as cli:
570
            self.assertEqual(cli.get("/unlimited").status_code, 200)
571
            self.assertEqual(cli.get("/unlimited").status_code, 200)
572
@@ 530-547 (lines=18) @@
527
            return "conditional"
528
529
        with app.test_client() as cli:
530
            self.assertEqual(cli.get("/limited").status_code, 200)
531
            self.assertEqual(cli.get("/limited").status_code, 429)
532
533
            self.assertEqual(cli.get("/unlimited").status_code, 200)
534
            self.assertEqual(cli.get("/unlimited").status_code, 200)
535
536
            self.assertEqual(cli.get("/conditional").status_code, 200)
537
            self.assertEqual(cli.get("/conditional").status_code, 429)
538
            is_exempt = True
539
            self.assertEqual(cli.get("/conditional").status_code, 200)
540
            is_exempt = False
541
            self.assertEqual(cli.get("/conditional").status_code, 429)
542
543
    def test_conditional_shared_limits(self):
544
        """Test that conditional shared limits work."""
545
        app = Flask(__name__)
546
        limiter = Limiter(app, key_func=get_remote_address)
547
548
        @app.route("/limited")
549
        @limiter.shared_limit("1 per day", "test_scope")
550
        def limited_route():