1+ import unittest
2+ from datetime import datetime , timezone
3+ from src .extractor import Extractor
4+
5+
6+ class TestIsCurrentPeriod (unittest .TestCase ):
7+ def setUp (self ):
8+ self .extractor = Extractor (fhir_json_data = {})
9+ self .occurrence = datetime (2025 , 6 , 12 , 13 , 0 , 0 , tzinfo = timezone .utc )
10+
11+ def test_valid_period_in_range (self ):
12+ name = {"period" : {"start" : "2025-06-01" , "end" : "2025-06-12" }}
13+ result = self .extractor ._is_current_period (name , self .occurrence )
14+ self .assertTrue (result )
15+
16+ def test_occurrence_after_end (self ):
17+ name = {"period" : {"start" : "2025-06-01" , "end" : "2025-06-11" }}
18+ result = self .extractor ._is_current_period (name , self .occurrence )
19+ self .assertFalse (result )
20+
21+ def test_occurrence_before_start (self ):
22+ name = {"period" : {"start" : "2025-06-13" , "end" : "2025-06-20" }}
23+ result = self .extractor ._is_current_period (name , self .occurrence )
24+ self .assertFalse (result )
25+
26+ def test_date_only_end (self ):
27+ name = {"period" : {"end" : "2025-06-12" }}
28+ result = self .extractor ._is_current_period (name , self .occurrence )
29+ self .assertTrue (result ) # because end-of-day logic applies
30+
31+ def test_no_period (self ):
32+ name = {}
33+ result = self .extractor ._is_current_period (name , self .occurrence )
34+ self .assertTrue (result )
35+
36+ if __name__ == '__main__' :
37+ unittest .main ()
0 commit comments