Add _util.now, fixing a few places where datetimes were incorrectly used
This commit is contained in:
@@ -419,7 +419,7 @@ class Client:
|
|||||||
Warning:
|
Warning:
|
||||||
This is not finished, and the API may change at any point!
|
This is not finished, and the API may change at any point!
|
||||||
"""
|
"""
|
||||||
at = datetime.datetime.utcnow()
|
at = _util.now()
|
||||||
form = {
|
form = {
|
||||||
"folders[0]": "inbox",
|
"folders[0]": "inbox",
|
||||||
"client": "mercury",
|
"client": "mercury",
|
||||||
|
@@ -486,7 +486,7 @@ class Session:
|
|||||||
return self._post("/api/graphqlbatch/", data, as_graphql=True)
|
return self._post("/api/graphqlbatch/", data, as_graphql=True)
|
||||||
|
|
||||||
def _do_send_request(self, data):
|
def _do_send_request(self, data):
|
||||||
now = datetime.datetime.utcnow()
|
now = _util.now()
|
||||||
offline_threading_id = _util.generate_offline_threading_id()
|
offline_threading_id = _util.generate_offline_threading_id()
|
||||||
data["client"] = "mercury"
|
data["client"] = "mercury"
|
||||||
data["author"] = "fbid:{}".format(self._user_id)
|
data["author"] = "fbid:{}".format(self._user_id)
|
||||||
|
@@ -56,7 +56,7 @@ def parse_json(text: str) -> Any:
|
|||||||
|
|
||||||
|
|
||||||
def generate_offline_threading_id():
|
def generate_offline_threading_id():
|
||||||
ret = datetime_to_millis(datetime.datetime.utcnow())
|
ret = datetime_to_millis(now())
|
||||||
value = int(random.random() * 4294967295)
|
value = int(random.random() * 4294967295)
|
||||||
string = ("0000000000000000000000" + format(value, "b"))[-22:]
|
string = ("0000000000000000000000" + format(value, "b"))[-22:]
|
||||||
msgs = format(ret, "b") + string
|
msgs = format(ret, "b") + string
|
||||||
@@ -158,3 +158,11 @@ def timedelta_to_seconds(td: datetime.timedelta) -> int:
|
|||||||
The returned seconds will be rounded to the nearest whole number.
|
The returned seconds will be rounded to the nearest whole number.
|
||||||
"""
|
"""
|
||||||
return round(td.total_seconds())
|
return round(td.total_seconds())
|
||||||
|
|
||||||
|
|
||||||
|
def now() -> datetime.datetime:
|
||||||
|
"""The current time.
|
||||||
|
|
||||||
|
Similar to datetime.datetime.now(), but returns a non-naive datetime.
|
||||||
|
"""
|
||||||
|
return datetime.datetime.now(tz=datetime.timezone.utc)
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
import pytest
|
import pytest
|
||||||
import fbchat
|
import fbchat
|
||||||
import datetime
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
pytestmark = pytest.mark.online
|
pytestmark = pytest.mark.online
|
||||||
@@ -95,11 +94,11 @@ def test_upload_many(client, open_resource):
|
|||||||
|
|
||||||
|
|
||||||
def test_mark_as_read(client, user, group):
|
def test_mark_as_read(client, user, group):
|
||||||
client.mark_as_read([user, group], datetime.datetime.now())
|
client.mark_as_read([user, group], fbchat._util.now())
|
||||||
|
|
||||||
|
|
||||||
def test_mark_as_unread(client, user, group):
|
def test_mark_as_unread(client, user, group):
|
||||||
client.mark_as_unread([user, group], datetime.datetime.now())
|
client.mark_as_unread([user, group], fbchat._util.now())
|
||||||
|
|
||||||
|
|
||||||
def test_move_threads(client, user, group):
|
def test_move_threads(client, user, group):
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import pytest
|
import pytest
|
||||||
from fbchat import ParseError
|
from fbchat import ParseError, _util
|
||||||
from fbchat._session import (
|
from fbchat._session import (
|
||||||
parse_server_js_define,
|
parse_server_js_define,
|
||||||
base36encode,
|
base36encode,
|
||||||
@@ -73,7 +73,7 @@ def test_prefix_url():
|
|||||||
|
|
||||||
def test_generate_message_id():
|
def test_generate_message_id():
|
||||||
# Returns random output, so hard to test more thoroughly
|
# Returns random output, so hard to test more thoroughly
|
||||||
assert generate_message_id(datetime.datetime.utcnow(), "def")
|
assert generate_message_id(_util.now(), "def")
|
||||||
|
|
||||||
|
|
||||||
def test_session_factory():
|
def test_session_factory():
|
||||||
|
@@ -15,6 +15,7 @@ from fbchat._util import (
|
|||||||
seconds_to_timedelta,
|
seconds_to_timedelta,
|
||||||
millis_to_timedelta,
|
millis_to_timedelta,
|
||||||
timedelta_to_seconds,
|
timedelta_to_seconds,
|
||||||
|
now,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -245,3 +246,7 @@ def test_timedelta_to_seconds():
|
|||||||
assert timedelta_to_seconds(datetime.timedelta(seconds=1)) == 1
|
assert timedelta_to_seconds(datetime.timedelta(seconds=1)) == 1
|
||||||
assert timedelta_to_seconds(datetime.timedelta(hours=1)) == 3600
|
assert timedelta_to_seconds(datetime.timedelta(hours=1)) == 3600
|
||||||
assert timedelta_to_seconds(datetime.timedelta(days=1)) == 86400
|
assert timedelta_to_seconds(datetime.timedelta(days=1)) == 86400
|
||||||
|
|
||||||
|
|
||||||
|
def test_now():
|
||||||
|
assert datetime_to_millis(now()) == datetime_to_millis(datetime.datetime.now())
|
||||||
|
Reference in New Issue
Block a user