]> git.proxmox.com Git - ceph.git/blob - ceph/src/python-common/ceph/tests/test_datetime.py
import 15.2.9
[ceph.git] / ceph / src / python-common / ceph / tests / test_datetime.py
1 import datetime
2
3 import pytest
4
5 from ceph.utils import datetime_now, datetime_to_str, str_to_datetime
6
7
8 def test_datetime_to_str_1():
9 dt = datetime.datetime.now()
10 assert type(datetime_to_str(dt)) is str
11
12
13 def test_datetime_to_str_2():
14 # note: tz isn't specified in the string, so explicitly store this as UTC
15 dt = datetime.datetime.strptime(
16 '2019-04-24T17:06:53.039991',
17 '%Y-%m-%dT%H:%M:%S.%f'
18 ).replace(tzinfo=datetime.timezone.utc)
19 assert datetime_to_str(dt) == '2019-04-24T17:06:53.039991Z'
20
21
22 def test_datetime_to_str_3():
23 dt = datetime.datetime.strptime('2020-11-02T04:40:12.748172-0800',
24 '%Y-%m-%dT%H:%M:%S.%f%z')
25 assert datetime_to_str(dt) == '2020-11-02T12:40:12.748172Z'
26
27
28 def test_str_to_datetime_1():
29 dt = str_to_datetime('2020-03-03T09:21:43.636153304Z')
30 assert type(dt) is datetime.datetime
31 assert dt.tzinfo is not None
32
33
34 def test_str_to_datetime_2():
35 dt = str_to_datetime('2020-03-03T15:52:30.136257504-0600')
36 assert type(dt) is datetime.datetime
37 assert dt.tzinfo is not None
38
39
40 def test_str_to_datetime_3():
41 dt = str_to_datetime('2020-03-03T15:52:30.136257504')
42 assert type(dt) is datetime.datetime
43 assert dt.tzinfo is not None
44
45
46 def test_str_to_datetime_invalid_format_1():
47 with pytest.raises(ValueError):
48 str_to_datetime('2020-03-03 15:52:30.136257504')
49
50
51 def test_str_to_datetime_invalid_format_2():
52 with pytest.raises(ValueError):
53 str_to_datetime('2020-03-03')
54
55
56 def test_datetime_now_1():
57 dt = str_to_datetime('2020-03-03T09:21:43.636153304Z')
58 dt_now = datetime_now()
59 assert type(dt_now) is datetime.datetime
60 assert dt_now.tzinfo is not None
61 assert dt < dt_now