File size: 1,115 Bytes
7d7841f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import os
import sys
import unittest
from pathlib import Path
from unittest.mock import patch

sys.path.insert(0, str(Path(__file__).resolve().parents[1]))

from app.main import DEFAULT_AUDIT_RATE_LIMIT, audit_rate_limit


class RateLimitConfigTests(unittest.TestCase):
    def test_audit_rate_limit_uses_local_default_when_unset(self) -> None:
        with patch.dict(os.environ, {}, clear=True):
            self.assertEqual(audit_rate_limit(), DEFAULT_AUDIT_RATE_LIMIT)

    def test_audit_rate_limit_uses_configured_value(self) -> None:
        with patch.dict(os.environ, {"MACHINEREAD_AUDIT_RATE_LIMIT": "10/minute"}):
            self.assertEqual(audit_rate_limit(), "10/minute")

    def test_audit_rate_limit_strips_and_falls_back_when_blank(self) -> None:
        with patch.dict(os.environ, {"MACHINEREAD_AUDIT_RATE_LIMIT": "   "}):
            self.assertEqual(audit_rate_limit(), DEFAULT_AUDIT_RATE_LIMIT)

        with patch.dict(os.environ, {"MACHINEREAD_AUDIT_RATE_LIMIT": " 5/minute "}):
            self.assertEqual(audit_rate_limit(), "5/minute")


if __name__ == "__main__":
    unittest.main()