1
1
from unittest import TestCase
2
2
from datetime import datetime
3
+
4
+ from osbot_utils .helpers .Safe_Id import Safe_Id
3
5
from osbot_utils .utils .Misc import utc_now , date_today
4
6
from osbot_aws .aws .s3 .S3__Key_Generator import S3__Key_Generator
5
7
@@ -139,3 +141,47 @@ def test_s3_folder__for_day(self):
139
141
expected = 'root/server1/2020-12-31'
140
142
result = _ .s3_folder__for_day (day )
141
143
assert result == expected
144
+
145
+ def test_create_path_elements__from_when__with_area_and_split (self ):
146
+ with S3__Key_Generator () as _ :
147
+ # Test with area parameter
148
+ _ .use_when = True
149
+ _ .root_folder = 'root'
150
+ _ .server_name = 'server1'
151
+ when = '2021-01-01/12/00'
152
+ area = Safe_Id ('test-area' )
153
+
154
+ # Test area parameter
155
+ expected = ['root' , 'server1' , 'test-area' , when ]
156
+ result = _ .create_path_elements__from_when (when = when , area = area )
157
+ assert result == expected
158
+
159
+ # Test split_when parameter
160
+ _ .split_when = True
161
+ expected = ['root' , 'server1' , 'test-area' , '2021-01-01' , '12' , '00' ]
162
+ result = _ .create_path_elements__from_when (when = when , area = area )
163
+ assert result == expected
164
+
165
+ # Test with no area but split_when
166
+ _ .split_when = True
167
+ area = None
168
+ expected = ['root' , 'server1' , '2021-01-01' , '12' , '00' ]
169
+ result = _ .create_path_elements__from_when (when = when , area = area )
170
+ assert result == expected
171
+
172
+ # Test with use_when=False
173
+ _ .use_when = False
174
+ area = Safe_Id ('test-area' )
175
+ expected = ['root' , 'server1' , 'test-area' ]
176
+ result = _ .create_path_elements__from_when (when = when , area = area )
177
+ assert result == expected
178
+
179
+ # Test with actual datetime path generation
180
+ _ .use_when = True
181
+ _ .split_when = True
182
+ now_path = _ .path__for_date_time__now_utc ()
183
+ result = _ .create_path_elements__from_when (area = area )
184
+ assert len (result ) == len (now_path .split ('/' )) + 3 # root, server1, area + split path
185
+ assert result [0 ] == 'root'
186
+ assert result [1 ] == 'server1'
187
+ assert result [2 ] == 'test-area'
0 commit comments