Skip to content

Commit 5424d2c

Browse files
committed
add types to test/test_odb_backend.py
1 parent 0b93aab commit 5424d2c

File tree

1 file changed

+28
-26
lines changed

1 file changed

+28
-26
lines changed

test/test_odb_backend.py

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,13 @@
2828
# Standard Library
2929
import binascii
3030
from pathlib import Path
31+
from typing import Generator, Iterator
3132

3233
import pytest
3334

3435
# pygit2
3536
import pygit2
37+
from pygit2 import Odb, Oid, Repository
3638
from pygit2.enums import ObjectType
3739

3840
from . import utils
@@ -43,21 +45,21 @@
4345

4446

4547
@pytest.fixture
46-
def odb(barerepo):
48+
def odb_path(barerepo: Repository) -> Generator[tuple[Odb, Path], None, None]:
4749
yield barerepo.odb, Path(barerepo.path) / 'objects'
4850

4951

50-
def test_pack(odb):
51-
odb, path = odb
52+
def test_pack(odb_path: tuple[Odb, Path]) -> None:
53+
odb, path = odb_path
5254

5355
pack = pygit2.OdbBackendPack(path)
5456
assert len(list(pack)) > 0
5557
for obj in pack:
5658
assert obj in odb
5759

5860

59-
def test_loose(odb):
60-
odb, path = odb
61+
def test_loose(odb_path: tuple[Odb, Path]) -> None:
62+
odb, path = odb_path
6163

6264
pack = pygit2.OdbBackendLoose(path, 5, False)
6365
assert len(list(pack)) > 0
@@ -66,30 +68,30 @@ def test_loose(odb):
6668

6769

6870
class ProxyBackend(pygit2.OdbBackend):
69-
def __init__(self, source):
71+
def __init__(self, source: pygit2.OdbBackend | pygit2.OdbBackendPack) -> None:
7072
super().__init__()
7173
self.source = source
7274

73-
def read_cb(self, oid):
75+
def read_cb(self, oid: Oid | str) -> tuple[int, bytes]:
7476
return self.source.read(oid)
7577

76-
def read_prefix_cb(self, oid):
78+
def read_prefix_cb(self, oid: Oid | str) -> tuple[int, bytes, Oid]:
7779
return self.source.read_prefix(oid)
7880

79-
def read_header_cb(self, oid):
81+
def read_header_cb(self, oid: Oid | str) -> tuple[int, int]:
8082
typ, data = self.source.read(oid)
8183
return typ, len(data)
8284

83-
def exists_cb(self, oid):
85+
def exists_cb(self, oid: Oid | str) -> bool:
8486
return self.source.exists(oid)
8587

86-
def exists_prefix_cb(self, oid):
88+
def exists_prefix_cb(self, oid: Oid | str) -> Oid:
8789
return self.source.exists_prefix(oid)
8890

89-
def refresh_cb(self):
91+
def refresh_cb(self) -> None:
9092
self.source.refresh()
9193

92-
def __iter__(self):
94+
def __iter__(self) -> Iterator[Oid]:
9395
return iter(self.source)
9496

9597

@@ -100,18 +102,18 @@ def __iter__(self):
100102

101103

102104
@pytest.fixture
103-
def proxy(barerepo):
105+
def proxy(barerepo: Repository) -> Generator[ProxyBackend, None, None]:
104106
path = Path(barerepo.path) / 'objects'
105107
yield ProxyBackend(pygit2.OdbBackendPack(path))
106108

107109

108-
def test_iterable(proxy):
110+
def test_iterable(proxy: ProxyBackend) -> None:
109111
assert BLOB_HEX in [o for o in proxy]
110112

111113

112-
def test_read(proxy):
114+
def test_read(proxy: ProxyBackend) -> None:
113115
with pytest.raises(TypeError):
114-
proxy.read(123)
116+
proxy.read(123) # type: ignore
115117
utils.assertRaisesWithArg(KeyError, '1' * 40, proxy.read, '1' * 40)
116118

117119
ab = proxy.read(BLOB_OID)
@@ -120,21 +122,21 @@ def test_read(proxy):
120122
assert (ObjectType.BLOB, b'a contents\n') == a
121123

122124

123-
def test_read_prefix(proxy):
125+
def test_read_prefix(proxy: ProxyBackend) -> None:
124126
a_hex_prefix = BLOB_HEX[:4]
125127
a3 = proxy.read_prefix(a_hex_prefix)
126128
assert (ObjectType.BLOB, b'a contents\n', BLOB_OID) == a3
127129

128130

129-
def test_exists(proxy):
131+
def test_exists(proxy: ProxyBackend) -> None:
130132
with pytest.raises(TypeError):
131-
proxy.exists(123)
133+
proxy.exists(123) # type: ignore
132134

133135
assert not proxy.exists('1' * 40)
134136
assert proxy.exists(BLOB_HEX)
135137

136138

137-
def test_exists_prefix(proxy):
139+
def test_exists_prefix(proxy: ProxyBackend) -> None:
138140
a_hex_prefix = BLOB_HEX[:4]
139141
assert BLOB_HEX == proxy.exists_prefix(a_hex_prefix)
140142

@@ -145,22 +147,22 @@ def test_exists_prefix(proxy):
145147

146148

147149
@pytest.fixture
148-
def repo(barerepo):
150+
def repo(barerepo: Repository) -> Generator[Repository, None, None]:
149151
odb = pygit2.Odb()
150152

151153
path = Path(barerepo.path) / 'objects'
152-
backend = pygit2.OdbBackendPack(path)
153-
backend = ProxyBackend(backend)
154+
backend_org = pygit2.OdbBackendPack(path)
155+
backend = ProxyBackend(backend_org)
154156
odb.add_backend(backend, 1)
155157

156158
repo = pygit2.Repository()
157159
repo.set_odb(odb)
158160
yield repo
159161

160162

161-
def test_repo_read(repo):
163+
def test_repo_read(repo: Repository) -> None:
162164
with pytest.raises(TypeError):
163-
repo[123]
165+
repo[123] # type: ignore
164166

165167
utils.assertRaisesWithArg(KeyError, '1' * 40, repo.__getitem__, '1' * 40)
166168

0 commit comments

Comments
 (0)