|
1 | 1 | import unittest |
2 | 2 | from singer import state as st |
3 | 3 |
|
4 | | -class TestGetBookmark(unittest.TestCase): |
| 4 | +class TestBookmark(unittest.TestCase): |
5 | 5 | def test_empty_state(self): |
6 | 6 | empty_state = {} |
7 | 7 |
|
@@ -69,8 +69,24 @@ def test_non_empty_state(self): |
69 | 69 | self.assertEqual(st.get_bookmark(non_empty_state, stream_id_1, bookmark_key_1, 'default_value'), |
70 | 70 | bookmark_val_1) |
71 | 71 |
|
| 72 | + def test_set_bookmark(self): |
| 73 | + stream_id_1 = 'customers' |
| 74 | + bookmark_key_1 = 'datetime' |
| 75 | + bookmark_val_1 = 123456789 |
| 76 | + |
| 77 | + result = st.set_bookmark({'bookmarks': {stream_id_1: {bookmark_key_1: 'old-value'}}}, stream_id_1, bookmark_key_1, bookmark_val_1) |
| 78 | + self.assertEqual(result, {'bookmarks': {stream_id_1: {bookmark_key_1: bookmark_val_1}}}) |
72 | 79 |
|
73 | | -class TestGetOffset(unittest.TestCase): |
| 80 | + def test_clear_bookmark(self): |
| 81 | + stream_id_1 = 'customers' |
| 82 | + bookmark_key_1 = 'datetime' |
| 83 | + bookmark_val_1 = 123456789 |
| 84 | + |
| 85 | + result = st.clear_bookmark({'bookmarks': {stream_id_1: {bookmark_key_1: bookmark_val_1}}}, stream_id_1, bookmark_key_1) |
| 86 | + self.assertEqual(result, {'bookmarks': {stream_id_1: {}}}) |
| 87 | + |
| 88 | + |
| 89 | +class TestOffset(unittest.TestCase): |
74 | 90 | def test_empty_state(self): |
75 | 91 | empty_state = {} |
76 | 92 |
|
@@ -129,8 +145,24 @@ def test_non_empty_state(self): |
129 | 145 | self.assertEqual(st.get_offset(non_empty_state, stream_id_1, 'default_value'), |
130 | 146 | offset_val) |
131 | 147 |
|
| 148 | + def test_set_offset(self): |
| 149 | + stream_id_1 = 'customers' |
| 150 | + offset_key_1 = 'datetime' |
| 151 | + offset_val_1 = 123456789 |
| 152 | + |
| 153 | + result = st.set_offset({'bookmarks': {stream_id_1: {'offset': {offset_key_1: 'old-value'}}}}, stream_id_1, offset_key_1, offset_val_1) |
| 154 | + self.assertEqual(result, {'bookmarks': {stream_id_1: {'offset': {offset_key_1: offset_val_1}}}}) |
132 | 155 |
|
133 | | -class TestGetCurrentlySyncing(unittest.TestCase): |
| 156 | + def test_clear_offset(self): |
| 157 | + stream_id_1 = 'customers' |
| 158 | + offset_key_1 = 'datetime' |
| 159 | + offset_val_1 = 123456789 |
| 160 | + |
| 161 | + result = st.clear_offset({'bookmarks': {stream_id_1: {'offset': {offset_key_1: offset_val_1}}}}, stream_id_1) |
| 162 | + self.assertEqual(result, {'bookmarks': {stream_id_1: {}}}) |
| 163 | + |
| 164 | + |
| 165 | +class TestCurrentlySyncing(unittest.TestCase): |
134 | 166 | def test_empty_state(self): |
135 | 167 | empty_state = {} |
136 | 168 |
|
@@ -165,6 +197,10 @@ def test_non_empty_state(self): |
165 | 197 | self.assertEqual(st.get_currently_syncing(non_empty_state, 'default_value'), |
166 | 198 | stream_id_1) |
167 | 199 |
|
| 200 | + def test_set_currently_syncing(self): |
| 201 | + result = st.set_currently_syncing({'currently_syncing': 'foo'}, 'bar') |
| 202 | + self.assertEqual(result, {'currently_syncing': 'bar'}) |
| 203 | + |
168 | 204 |
|
169 | 205 | class TestActivateVersion(unittest.TestCase): |
170 | 206 | def test_empty_state(self): |
@@ -233,3 +269,19 @@ def test_non_empty_state(self): |
233 | 269 | # Good stream, good key |
234 | 270 | self.assertEqual(st.get_version(non_empty_state, stream_id_1, version_key_1, 'default_value'), |
235 | 271 | version_val_1) |
| 272 | + |
| 273 | + def test_set_version(self): |
| 274 | + stream_id_1 = 'customers' |
| 275 | + version_key_1 = 'datetime' |
| 276 | + version_val_1 = 123456789 |
| 277 | + |
| 278 | + result = st.set_version({'activate_versions': {stream_id_1: {version_key_1: 'old-value'}}}, stream_id_1, version_key_1, version_val_1) |
| 279 | + self.assertEqual(result, {'activate_versions': {stream_id_1: {version_key_1: version_val_1}}}) |
| 280 | + |
| 281 | + def test_clear_version(self): |
| 282 | + stream_id_1 = 'customers' |
| 283 | + version_key_1 = 'datetime' |
| 284 | + version_val_1 = 123456789 |
| 285 | + |
| 286 | + result = st.clear_version({'activate_versions': {stream_id_1: {version_key_1: version_val_1}}}, stream_id_1, version_key_1) |
| 287 | + self.assertEqual(result, {'activate_versions': {stream_id_1: {}}}) |
0 commit comments