|
1 | 1 | import json
|
| 2 | +import pytest |
2 | 3 |
|
3 | 4 | from unittest.mock import MagicMock, patch
|
4 | 5 | from labelbox.schema.export_task import ExportTask
|
@@ -60,6 +61,76 @@ def test_export_task(self):
|
60 | 61 | export_task = ExportTask(mock_task, is_export_v2=True)
|
61 | 62 | assert export_task.result[0] == data
|
62 | 63 |
|
| 64 | + def test_get_buffered_stream_complete(self): |
| 65 | + with pytest.raises(ExportTask.ExportTaskException): |
| 66 | + mock_task = MagicMock() |
| 67 | + mock_task.status = "FAILED" |
| 68 | + export_task = ExportTask(mock_task, is_export_v2=True) |
| 69 | + export_task.get_buffered_stream() |
| 70 | + |
| 71 | + def test_get_buffered_stream_failed(self): |
| 72 | + with pytest.raises(ExportTask.ExportTaskException): |
| 73 | + mock_task = MagicMock() |
| 74 | + mock_task.status = "INPROGRESS" |
| 75 | + export_task = ExportTask(mock_task, is_export_v2=True) |
| 76 | + export_task.get_buffered_stream() |
| 77 | + |
| 78 | + def test_get_buffered_stream(self): |
| 79 | + with patch('requests.get') as mock_requests_get: |
| 80 | + mock_task = MagicMock() |
| 81 | + mock_task.client.execute.side_effect = [ |
| 82 | + { |
| 83 | + "task": { |
| 84 | + "exportMetadataHeader": { |
| 85 | + "total_size": 1, |
| 86 | + "total_lines": 1, |
| 87 | + "lines": { |
| 88 | + "start": 0, |
| 89 | + "end": 1 |
| 90 | + }, |
| 91 | + "offsets": { |
| 92 | + "start": 0, |
| 93 | + "end": 0 |
| 94 | + }, |
| 95 | + "file": "file" |
| 96 | + } |
| 97 | + } |
| 98 | + }, |
| 99 | + { |
| 100 | + "task": { |
| 101 | + "exportFileFromOffset": { |
| 102 | + "total_size": 1, |
| 103 | + "total_lines": 1, |
| 104 | + "lines": { |
| 105 | + "start": 0, |
| 106 | + "end": 1 |
| 107 | + }, |
| 108 | + "offsets": { |
| 109 | + "start": 0, |
| 110 | + "end": 0 |
| 111 | + }, |
| 112 | + "file": "file" |
| 113 | + } |
| 114 | + } |
| 115 | + }, |
| 116 | + ] |
| 117 | + mock_task.status = "COMPLETE" |
| 118 | + data = { |
| 119 | + "data_row": { |
| 120 | + "raw_data": |
| 121 | + """ |
| 122 | + {"raw_text":"}{"} |
| 123 | + {"raw_text":"\\nbad"} |
| 124 | + """ |
| 125 | + } |
| 126 | + } |
| 127 | + mock_requests_get.return_value.text = json.dumps(data) |
| 128 | + mock_requests_get.return_value.content = "b" |
| 129 | + export_task = ExportTask(mock_task, is_export_v2=True) |
| 130 | + output_data = [] |
| 131 | + export_task.get_buffered_stream().start(stream_handler=lambda x: output_data.append(x.json)) |
| 132 | + assert data == output_data[0] |
| 133 | + |
63 | 134 | def test_export_task_bad_offsets(self):
|
64 | 135 | with patch('requests.get') as mock_requests_get:
|
65 | 136 | mock_task = MagicMock()
|
|
0 commit comments