Skip to content

Commit 127ce87

Browse files
authored
Merge pull request #2831 from lunkwill42/bugfix/activeipcollector-naive-timestamp-test
Fix activeipcollector `get_timestamp` function implementation and its broken timezone-naive test
2 parents dcc18f9 + 8ff73b0 commit 127ce87

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

python/nav/activeipcollector/manager.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
# License along with NAV. If not, see <http://www.gnu.org/licenses/>.
1717
#
1818
"""Manage collection and storing of active ip-addresses statistics"""
19-
19+
import datetime
2020
import logging
2121
import time
22+
from typing import Optional
23+
2224
from IPy import IP
2325

2426
import nav.activeipcollector.collector as collector
@@ -82,11 +84,7 @@ def find_range(prefix):
8284
return 0
8385

8486

85-
def get_timestamp(timestamp=None):
87+
def get_timestamp(timestamp: Optional[datetime.datetime] = None) -> int:
8688
"""Find timestamp closest to 30 minutes intervals"""
8789

88-
def get_epoch():
89-
"""Find epoch from a datetime object"""
90-
return int(time.mktime(timestamp.timetuple()))
91-
92-
return get_epoch() if timestamp else int(time.time())
90+
return timestamp.timestamp() if timestamp else int(time.time())

tests/unittests/general/prefix_ip_collector_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""Tests for prefix_ip_collector"""
44

55
import unittest
6-
from datetime import datetime
6+
from datetime import datetime, timezone
77
from nav.activeipcollector.manager import find_range, get_timestamp
88

99

@@ -14,5 +14,5 @@ def test_find_range(self):
1414
self.assertEqual(find_range('2001:700:0:251e::/64'), 0)
1515

1616
def test_find_timestamp(self):
17-
ts = datetime(2012, 10, 4, 14, 30)
18-
self.assertEqual(get_timestamp(ts), 1349353800)
17+
ts = datetime(2012, 10, 4, 14, 30, tzinfo=timezone.utc)
18+
self.assertEqual(get_timestamp(ts), 1349361000)

0 commit comments

Comments
 (0)