def test_remove_sub__removes_subscription_case_insensitive(mock_client): api = MockExportAPI() watcher = SubscriptionWatcher(api, mock_client) watcher.subscriptions.add(Subscription("example", 18749)) watcher.subscriptions.add(Subscription("test", 18747)) new_sub = Subscription("test", 18749) new_sub.latest_update = datetime.datetime.now() watcher.subscriptions.add(new_sub) func = SubscriptionFunctionality(watcher) list_subs = MockMethod("Listing subscriptions") func._list_subs = list_subs.call resp = func._remove_sub(18749, "TEST") assert "Removed subscription: \"TEST\"." in resp assert list_subs.called assert list_subs.args[0] == 18749 assert "Listing subscriptions" in resp assert len(watcher.subscriptions) == 2 subscriptions = list(watcher.subscriptions) if subscriptions[0].query_str == "test": assert subscriptions[0].destination == 18747 assert subscriptions[1].query_str == "example" assert subscriptions[1].destination == 18749 else: assert subscriptions[0].query_str == "example" assert subscriptions[0].destination == 18749 assert subscriptions[1].query_str == "test" assert subscriptions[1].destination == 18747
def test_to_json(): sub = Subscription("test query", -12322) sub.latest_update = datetime.datetime(2019, 9, 17, 21, 8, 35) data = sub.to_json() assert "query" in data assert data["query"] == "test query" assert "latest_update" in data assert data["latest_update"] == "2019-09-17T21:08:35" assert data["paused"] is False
def test_to_json_and_back(): sub = Subscription("something", 3223) sub.latest_update = datetime.datetime(2019, 9, 17, 21, 16, 14, tzinfo=datetime.timezone.utc) data = sub.to_json() new_sub = Subscription.from_json_new_format(data, 3223) assert new_sub.query_str == sub.query_str assert new_sub.destination == sub.destination assert new_sub.latest_update == sub.latest_update