Spaces:
Paused
Paused
| #!/usr/bin/env python3 | |
| # run from dir above changedetectionio/ dir | |
| # python3 -m unittest changedetectionio.tests.unit.test_notification_diff | |
| import unittest | |
| import os | |
| from changedetectionio.model import Watch | |
| # mostly | |
| class TestDiffBuilder(unittest.TestCase): | |
| def test_watch_get_suggested_from_diff_timestamp(self): | |
| import uuid as uuid_builder | |
| watch = Watch.model(datastore_path='/tmp', default={}) | |
| watch.ensure_data_dir_exists() | |
| # Contents from the browser are always returned from the browser/requests/etc as str, str is basically UTF-16 in python | |
| watch.save_history_text(contents="hello world", timestamp=100, snapshot_id=str(uuid_builder.uuid4())) | |
| watch.save_history_text(contents="hello world", timestamp=105, snapshot_id=str(uuid_builder.uuid4())) | |
| watch.save_history_text(contents="hello world", timestamp=109, snapshot_id=str(uuid_builder.uuid4())) | |
| watch.save_history_text(contents="hello world", timestamp=112, snapshot_id=str(uuid_builder.uuid4())) | |
| watch.save_history_text(contents="hello world", timestamp=115, snapshot_id=str(uuid_builder.uuid4())) | |
| watch.save_history_text(contents="hello world", timestamp=117, snapshot_id=str(uuid_builder.uuid4())) | |
| p = watch.get_from_version_based_on_last_viewed | |
| assert p == "100", "Correct 'last viewed' timestamp was detected" | |
| watch['last_viewed'] = 110 | |
| p = watch.get_from_version_based_on_last_viewed | |
| assert p == "109", "Correct 'last viewed' timestamp was detected" | |
| watch['last_viewed'] = 116 | |
| p = watch.get_from_version_based_on_last_viewed | |
| assert p == "115", "Correct 'last viewed' timestamp was detected" | |
| watch['last_viewed'] = 99 | |
| p = watch.get_from_version_based_on_last_viewed | |
| assert p == "100", "When the 'last viewed' timestamp is less than the oldest snapshot, return oldest" | |
| watch['last_viewed'] = 200 | |
| p = watch.get_from_version_based_on_last_viewed | |
| assert p == "115", "When the 'last viewed' timestamp is greater than the newest snapshot, return second newest" | |
| watch['last_viewed'] = 109 | |
| p = watch.get_from_version_based_on_last_viewed | |
| assert p == "109", "Correct when its the same time" | |
| # new empty one | |
| watch = Watch.model(datastore_path='/tmp', default={}) | |
| p = watch.get_from_version_based_on_last_viewed | |
| assert p == None, "None when no history available" | |
| watch.save_history_text(contents="hello world", timestamp=100, snapshot_id=str(uuid_builder.uuid4())) | |
| p = watch.get_from_version_based_on_last_viewed | |
| assert p == "100", "Correct with only one history snapshot" | |
| watch['last_viewed'] = 200 | |
| p = watch.get_from_version_based_on_last_viewed | |
| assert p == "100", "Correct with only one history snapshot" | |
| if __name__ == '__main__': | |
| unittest.main() | |