Skip to content

Commit 9c685d5

Browse files
authored
Fix #963: Remove unused code (#964)
* Move listing to queue class * Remove unused list(bug_id) * Remove unused list_all()
1 parent 7fb7291 commit 9c685d5

File tree

2 files changed

+16
-106
lines changed

2 files changed

+16
-106
lines changed

jbi/queue.py

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
from functools import lru_cache
3232
from json import JSONDecodeError
3333
from pathlib import Path
34-
from typing import Any, AsyncIterator, List, Optional
34+
from typing import Any, AsyncIterator, Optional
3535
from urllib.parse import ParseResult, urlparse
3636

3737
import dockerflow.checks
@@ -125,24 +125,6 @@ def get(self, bug_id: int) -> AsyncIterator[QueueItem]:
125125
"""
126126
pass
127127

128-
@abstractmethod
129-
async def list(self, bug_id: int) -> List[str]:
130-
"""Report a summary of all of the items in the queue for a bug
131-
132-
Returns:
133-
a dict bug id, list of item identifier
134-
"""
135-
pass
136-
137-
@abstractmethod
138-
async def list_all(self) -> dict[int, List[str]]:
139-
"""Report a summary of all of the items in the queue
140-
141-
Returns:
142-
a dict bug id, list of item identifiers
143-
"""
144-
pass
145-
146128
@abstractmethod
147129
async def get_all(self) -> dict[int, AsyncIterator[QueueItem]]:
148130
"""Retrieve all items in the queue, grouped by bug
@@ -207,19 +189,6 @@ async def remove(self, bug_id: int, identifier: str):
207189
bug_dir.rmdir()
208190
logger.debug("Removed directory for bug %s", bug_id)
209191

210-
async def list(self, bug_id: int) -> List[str]:
211-
bug_dir = self.location / str(bug_id)
212-
return [path.stem for path in sorted(bug_dir.glob("*.json"))]
213-
214-
async def list_all(self) -> dict[int, List[str]]:
215-
item_data: dict[int, List[str]] = {}
216-
for filesystem_object in self.location.iterdir():
217-
if filesystem_object.is_dir():
218-
bug_id = int(filesystem_object.name)
219-
item_ids = await self.list(bug_id=bug_id)
220-
item_data[bug_id] = item_ids
221-
return item_data
222-
223192
async def get(self, bug_id: int) -> AsyncIterator[QueueItem]:
224193
folder = self.location / str(bug_id)
225194
if not folder.is_dir():
@@ -322,12 +291,6 @@ async def retrieve(self) -> dict[int, AsyncIterator[QueueItem]]:
322291
"""
323292
return await self.backend.get_all()
324293

325-
async def list(self, bug_id: int) -> List[str]:
326-
return await self.backend.list(bug_id=bug_id)
327-
328-
async def list_all(self) -> dict[int, List[str]]:
329-
return await self.backend.list_all()
330-
331294
async def size(self, bug_id=None):
332295
return await self.backend.size(bug_id=bug_id)
333296

tests/unit/jira/test_queue.py

Lines changed: 15 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def test_filebackend_ping_fails(caplog, tmp_path):
4242

4343

4444
@pytest.mark.asyncio
45-
async def test_remove_last_item(backend: QueueBackend, queue_item_factory):
45+
async def test_backend_remove_last_item(backend: QueueBackend, queue_item_factory):
4646
"""When we remove the last item for a bug, we also remove it's key from the
4747
backend"""
4848

@@ -56,7 +56,7 @@ async def test_remove_last_item(backend: QueueBackend, queue_item_factory):
5656

5757

5858
@pytest.mark.asyncio
59-
async def test_clear(backend: QueueBackend, queue_item_factory):
59+
async def test_backend_clear(backend: QueueBackend, queue_item_factory):
6060
item_1 = queue_item_factory(payload__bug__id=123)
6161
item_2 = queue_item_factory(payload__bug__id=456)
6262

@@ -69,7 +69,9 @@ async def test_clear(backend: QueueBackend, queue_item_factory):
6969

7070

7171
@pytest.mark.asyncio
72-
async def test_put_maintains_sorted_order(backend: QueueBackend, queue_item_factory):
72+
async def test_backend_put_maintains_sorted_order(
73+
backend: QueueBackend, queue_item_factory
74+
):
7375
now = datetime.now()
7476
item_1 = queue_item_factory(payload__event__time=now + timedelta(minutes=1))
7577
item_2 = queue_item_factory(payload__event__time=now + timedelta(minutes=2))
@@ -86,40 +88,7 @@ async def test_put_maintains_sorted_order(backend: QueueBackend, queue_item_fact
8688

8789

8890
@pytest.mark.asyncio
89-
async def test_backend_list(backend: QueueBackend, queue_item_factory):
90-
item = queue_item_factory(payload__bug__id=123)
91-
await backend.put(item)
92-
await backend.put(queue_item_factory(payload__bug__id=456))
93-
94-
[identifier] = await backend.list(123)
95-
assert item.identifier == identifier
96-
97-
98-
@pytest.mark.asyncio
99-
async def test_backend_list_all(backend: QueueBackend, queue_item_factory):
100-
for bug_id in (123, 123, 456, 456):
101-
await backend.put(queue_item_factory(payload__bug__id=bug_id))
102-
103-
all_items = await backend.list_all()
104-
assert len(all_items) == 2
105-
106-
for items in all_items.values():
107-
assert len(items) == 2
108-
109-
110-
@pytest.mark.asyncio
111-
async def test_list_by_bug(backend: QueueBackend, queue_item_factory):
112-
item_1 = queue_item_factory(payload__bug__id=123)
113-
item_2 = queue_item_factory(payload__bug__id=456)
114-
115-
await backend.put(item_1)
116-
await backend.put(item_2)
117-
[identifier] = await backend.list(bug_id=123)
118-
assert identifier == item_1.identifier
119-
120-
121-
@pytest.mark.asyncio
122-
async def test_list_ordering(backend: QueueBackend, queue_item_factory):
91+
async def test_backend_get_ordering(backend: QueueBackend, queue_item_factory):
12392
now = datetime.now()
12493
item_1 = queue_item_factory(payload__event__time=now + timedelta(minutes=1))
12594
item_2 = queue_item_factory(payload__event__time=now + timedelta(minutes=2))
@@ -131,13 +100,15 @@ async def test_list_ordering(backend: QueueBackend, queue_item_factory):
131100
await backend.put(item_3)
132101
await backend.put(item_4)
133102

134-
item_metadata = await backend.list(bug_id=item_1.payload.bug.id)
103+
item_metadata = [
104+
item.identifier async for item in backend.get(bug_id=item_1.payload.bug.id)
105+
]
135106
exptected_id_order = [item.identifier for item in [item_1, item_2, item_3, item_4]]
136107
assert exptected_id_order == item_metadata
137108

138109

139110
@pytest.mark.asyncio
140-
async def test_get_all(backend: QueueBackend, queue_item_factory):
111+
async def test_backend_get_all(backend: QueueBackend, queue_item_factory):
141112
now = datetime.now()
142113
item_1 = queue_item_factory(
143114
payload__bug__id=123, payload__event__time=now + timedelta(minutes=1)
@@ -164,7 +135,7 @@ async def test_get_all(backend: QueueBackend, queue_item_factory):
164135

165136

166137
@pytest.mark.asyncio
167-
async def test_get_all_invalid_json(backend: QueueBackend, queue_item_factory):
138+
async def test_backend_get_all_invalid_json(backend: QueueBackend, queue_item_factory):
168139
item_1 = queue_item_factory()
169140
await backend.put(item_1)
170141

@@ -179,7 +150,7 @@ async def test_get_all_invalid_json(backend: QueueBackend, queue_item_factory):
179150

180151

181152
@pytest.mark.asyncio
182-
async def test_get_all_payload_doesnt_match_schema(
153+
async def test_backend_get_all_payload_doesnt_match_schema(
183154
backend: QueueBackend, queue_item_factory
184155
):
185156
item_1 = queue_item_factory()
@@ -196,7 +167,7 @@ async def test_get_all_payload_doesnt_match_schema(
196167

197168

198169
@pytest.mark.asyncio
199-
async def test_get_invalid_json(backend: QueueBackend, queue_item_factory):
170+
async def test_backend_get_invalid_json(backend: QueueBackend, queue_item_factory):
200171
corrupt_file_dir = backend.location / "999"
201172
corrupt_file_dir.mkdir()
202173
corrupt_file_path = corrupt_file_dir / "xxx.json"
@@ -207,8 +178,7 @@ async def test_get_invalid_json(backend: QueueBackend, queue_item_factory):
207178
with pytest.raises(QueueItemRetrievalError):
208179
await anext(items)
209180

210-
211-
@pytest.mark.asyncio
181+
212182
async def test_get_missing_timezone(backend: QueueBackend, queue_item_factory):
213183
item = queue_item_factory.build(payload__bug__id=666)
214184
dump = item.model_dump()
@@ -226,8 +196,7 @@ async def test_get_missing_timezone(backend: QueueBackend, queue_item_factory):
226196
assert "2024-04-18T12:46:54Z" in item.model_dump_json(), "timezone put in dump"
227197

228198

229-
@pytest.mark.asyncio
230-
async def test_get_payload_doesnt_match_schema(
199+
async def test_backend_get_payload_doesnt_match_schema(
231200
backend: QueueBackend, queue_item_factory
232201
):
233202
# this is invalid, as whiteboard should be a string
@@ -348,25 +317,3 @@ async def test_done(queue: DeadLetterQueue, queue_item_factory):
348317

349318
await queue.done(item)
350319
assert await queue.backend.size() == 0
351-
352-
353-
@pytest.mark.asyncio
354-
async def test_queue_list(queue: DeadLetterQueue, queue_item_factory):
355-
item = queue_item_factory(payload__bug__id=123)
356-
await queue.backend.put(item)
357-
await queue.backend.put(queue_item_factory(payload__bug__id=456))
358-
359-
[identifier] = await queue.list(123)
360-
assert item.identifier == identifier
361-
362-
363-
@pytest.mark.asyncio
364-
async def test_queue_list_all(queue: DeadLetterQueue, queue_item_factory):
365-
for bug_id in (123, 123, 456, 456):
366-
await queue.backend.put(queue_item_factory(payload__bug__id=bug_id))
367-
368-
all_items = await queue.list_all()
369-
assert len(all_items) == 2
370-
371-
for items in all_items.values():
372-
assert len(items) == 2

0 commit comments

Comments
 (0)