]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
netcmd: models: model field DateTimeField returns datetime in UTC
authorRob van der Linde <rob@catalyst.net.nz>
Thu, 1 Feb 2024 20:54:08 +0000 (09:54 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 8 Feb 2024 02:48:44 +0000 (02:48 +0000)
Signed-off-by: Rob van der Linde <rob@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/netcmd/domain/models/fields.py
python/samba/tests/samba_tool/domain_models.py

index 117d805fd4bd437997a8ceda4e7b9bf04b1787f0..1a4d9d7f034220382df91d3a6ab9f96c135856b6 100644 (file)
@@ -22,7 +22,7 @@
 
 import io
 from abc import ABCMeta, abstractmethod
-from datetime import datetime
+from datetime import datetime, timezone
 from enum import IntEnum, IntFlag
 from xml.etree import ElementTree
 
@@ -221,10 +221,11 @@ class DateTimeField(Field):
         if value is None:
             return
         elif len(value) > 1 or self.many:
-            return [datetime.fromtimestamp(string_to_time(str(item)))
-                    for item in value]
+            return [datetime.fromtimestamp(string_to_time(str(item)),
+                                           tz=timezone.utc) for item in value]
         else:
-            return datetime.fromtimestamp(string_to_time(str(value)))
+            return datetime.fromtimestamp(string_to_time(str(value)),
+                                          tz=timezone.utc)
 
     def to_db_value(self, ldb, value, flags):
         """Convert datetime or list of datetime to MessageElement."""
index 45d6095c775a5eb0f3f691149b16063676be87c3..fdfaac2f43194b974962a3b154bdf4093b7368dd 100644 (file)
@@ -21,7 +21,7 @@
 #
 
 import os
-from datetime import datetime
+from datetime import datetime, timezone
 from xml.etree import ElementTree
 
 from ldb import FLAG_MOD_ADD, MessageElement, SCOPE_ONELEVEL
@@ -194,16 +194,20 @@ class DateTimeFieldTest(FieldTestMixin, SambaToolCmdTest):
     field = fields.DateTimeField("FieldName")
 
     to_db_value = [
-        (datetime(2023, 1, 27, 22, 36, 41), MessageElement("20230127223641.0Z")),
-        ([datetime(2023, 1, 27, 22, 36, 41), datetime(2023, 1, 27, 22, 47, 50)],
+        (datetime(2023, 1, 27, 22, 36, 41, tzinfo=timezone.utc),
+         MessageElement("20230127223641.0Z")),
+        ([datetime(2023, 1, 27, 22, 36, 41, tzinfo=timezone.utc),
+          datetime(2023, 1, 27, 22, 47, 50, tzinfo=timezone.utc)],
          MessageElement(["20230127223641.0Z", "20230127224750.0Z"])),
         (None, None),
     ]
 
     from_db_value = [
-        (MessageElement("20230127223641.0Z"), datetime(2023, 1, 27, 22, 36, 41)),
+        (MessageElement("20230127223641.0Z"),
+         datetime(2023, 1, 27, 22, 36, 41, tzinfo=timezone.utc)),
         (MessageElement(["20230127223641.0Z", "20230127224750.0Z"]),
-         [datetime(2023, 1, 27, 22, 36, 41), datetime(2023, 1, 27, 22, 47, 50)]),
+         [datetime(2023, 1, 27, 22, 36, 41, tzinfo=timezone.utc),
+          datetime(2023, 1, 27, 22, 47, 50, tzinfo=timezone.utc)]),
         (None, None),
     ]