Skip to content

Commit 2bcd5b9

Browse files
authored
🏷️ fix types (#71)
1 parent 444b6ce commit 2bcd5b9

File tree

3 files changed

+48
-51
lines changed

3 files changed

+48
-51
lines changed

sqlite3_to_mysql/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
"""Utility to transfer data from SQLite 3 to MySQL."""
2-
__version__ = "2.0.0"
2+
__version__ = "2.0.1"
33

44
from .transporter import SQLite3toMySQL

tests/conftest.py

+9-10
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@
2828
from sqlalchemy.orm import Session
2929
from sqlalchemy_utils import database_exists, drop_database
3030

31-
from .database import Database
32-
from .factories import ArticleFactory, AuthorFactory, ImageFactory, MediaFactory, MiscFactory, TagFactory
31+
from . import database, factories
3332

3433

3534
def pytest_addoption(parser: "Parser") -> None:
@@ -128,7 +127,7 @@ def not_raises(exception: t.Type[Exception]) -> t.Generator:
128127

129128
@staticmethod
130129
@contextmanager
131-
def session_scope(db: Database) -> t.Generator:
130+
def session_scope(db: database.Database) -> t.Generator:
132131
"""Provide a transactional scope around a series of operations."""
133132
session: Session = db.Session()
134133
try:
@@ -157,18 +156,18 @@ def sqlite_database(pytestconfig: Config, _session_faker: Faker, tmpdir_factory:
157156
temp_data_dir: LocalPath = tmpdir_factory.mktemp("data")
158157
temp_image_dir: LocalPath = tmpdir_factory.mktemp("images")
159158
db_file = temp_data_dir.join(Path("db.sqlite3"))
160-
db: Database = Database(f"sqlite:///{db_file}")
159+
db: database.Database = database.Database(f"sqlite:///{db_file}")
161160

162161
with Helpers.session_scope(db) as session:
163162
for _ in range(_session_faker.pyint(min_value=12, max_value=24)):
164-
article = ArticleFactory()
165-
article.authors.append(AuthorFactory())
166-
article.tags.append(TagFactory())
167-
article.misc.append(MiscFactory())
168-
article.media.append(MediaFactory())
163+
article = factories.ArticleFactory()
164+
article.authors.append(factories.AuthorFactory())
165+
article.tags.append(factories.TagFactory())
166+
article.misc.append(factories.MiscFactory())
167+
article.media.append(factories.MediaFactory())
169168
for _ in range(_session_faker.pyint(min_value=1, max_value=4)):
170169
article.images.append(
171-
ImageFactory(
170+
factories.ImageFactory(
172171
path=join(
173172
str(temp_image_dir),
174173
_session_faker.year(),

tests/factories.py

+38-40
Original file line numberDiff line numberDiff line change
@@ -2,75 +2,73 @@
22
from os import environ
33

44
import factory
5-
from factory import Faker
65

76
from . import models
8-
from .models import Article, Author, Image, Media, Misc, Tag
97

108

119
class AuthorFactory(factory.Factory):
1210
class Meta:
13-
model: t.Type[Author] = models.Author
11+
model: t.Type[models.Author] = models.Author
1412

15-
name: Faker = factory.Faker("name")
13+
name: factory.Faker = factory.Faker("name")
1614

1715

1816
class ImageFactory(factory.Factory):
1917
class Meta:
20-
model: t.Type[Image] = models.Image
18+
model: t.Type[models.Image] = models.Image
2119

22-
path: Faker = factory.Faker("file_path", depth=3, extension="jpg")
23-
description: Faker = factory.Faker("sentence", nb_words=12, variable_nb_words=True)
20+
path: factory.Faker = factory.Faker("file_path", depth=3, extension="jpg")
21+
description: factory.Faker = factory.Faker("sentence", nb_words=12, variable_nb_words=True)
2422

2523

2624
class TagFactory(factory.Factory):
2725
class Meta:
28-
model: t.Type[Tag] = models.Tag
26+
model: t.Type[models.Tag] = models.Tag
2927

30-
name: Faker = factory.Faker("sentence", nb_words=3, variable_nb_words=True)
28+
name: factory.Faker = factory.Faker("sentence", nb_words=3, variable_nb_words=True)
3129

3230

3331
class MiscFactory(factory.Factory):
3432
class Meta:
35-
model: t.Type[Misc] = models.Misc
36-
37-
big_integer_field: Faker = factory.Faker("pyint", max_value=10**9)
38-
blob_field: Faker = factory.Faker("binary", length=1024 * 10)
39-
boolean_field: Faker = factory.Faker("boolean")
40-
char_field: Faker = factory.Faker("text", max_nb_chars=255)
41-
date_field: Faker = factory.Faker("date_this_decade")
42-
date_time_field: Faker = factory.Faker("date_time_this_century")
43-
decimal_field: Faker = factory.Faker("pydecimal", left_digits=8, right_digits=2)
44-
float_field: Faker = factory.Faker("pyfloat", left_digits=8, right_digits=4)
45-
integer_field: Faker = factory.Faker("pyint", min_value=-(2**31), max_value=2**31 - 1)
33+
model: t.Type[models.Misc] = models.Misc
34+
35+
big_integer_field: factory.Faker = factory.Faker("pyint", max_value=10**9)
36+
blob_field: factory.Faker = factory.Faker("binary", length=1024 * 10)
37+
boolean_field: factory.Faker = factory.Faker("boolean")
38+
char_field: factory.Faker = factory.Faker("text", max_nb_chars=255)
39+
date_field: factory.Faker = factory.Faker("date_this_decade")
40+
date_time_field: factory.Faker = factory.Faker("date_time_this_century")
41+
decimal_field: factory.Faker = factory.Faker("pydecimal", left_digits=8, right_digits=2)
42+
float_field: factory.Faker = factory.Faker("pyfloat", left_digits=8, right_digits=4)
43+
integer_field: factory.Faker = factory.Faker("pyint", min_value=-(2**31), max_value=2**31 - 1)
4644
if environ.get("LEGACY_DB", "0") == "0":
4745
json_field = factory.Faker(
4846
"pydict",
4947
nb_elements=10,
5048
variable_nb_elements=True,
5149
value_types=["str", "int", "float", "boolean", "date_time"],
5250
)
53-
numeric_field: Faker = factory.Faker("pyfloat", left_digits=8, right_digits=4)
54-
real_field: Faker = factory.Faker("pyfloat", left_digits=8, right_digits=4)
55-
small_integer_field: Faker = factory.Faker("pyint", min_value=-(2**15), max_value=2**15 - 1)
56-
string_field: Faker = factory.Faker("text", max_nb_chars=255)
57-
text_field: Faker = factory.Faker("text", max_nb_chars=1024)
58-
time_field: Faker = factory.Faker("time_object")
59-
varchar_field: Faker = factory.Faker("text", max_nb_chars=255)
60-
timestamp_field: Faker = factory.Faker("date_time_this_century")
61-
my_type_field: Faker = factory.Faker("text", max_nb_chars=255)
51+
numeric_field: factory.Faker = factory.Faker("pyfloat", left_digits=8, right_digits=4)
52+
real_field: factory.Faker = factory.Faker("pyfloat", left_digits=8, right_digits=4)
53+
small_integer_field: factory.Faker = factory.Faker("pyint", min_value=-(2**15), max_value=2**15 - 1)
54+
string_field: factory.Faker = factory.Faker("text", max_nb_chars=255)
55+
text_field: factory.Faker = factory.Faker("text", max_nb_chars=1024)
56+
time_field: factory.Faker = factory.Faker("time_object")
57+
varchar_field: factory.Faker = factory.Faker("text", max_nb_chars=255)
58+
timestamp_field: factory.Faker = factory.Faker("date_time_this_century")
59+
my_type_field: factory.Faker = factory.Faker("text", max_nb_chars=255)
6260

6361

6462
class ArticleFactory(factory.Factory):
6563
class Meta:
66-
model: t.Type[Article] = models.Article
64+
model: t.Type[models.Article] = models.Article
6765

68-
hash: Faker = factory.Faker("md5")
69-
title: Faker = factory.Faker("sentence", nb_words=6)
70-
slug: Faker = factory.Faker("slug")
71-
content: Faker = factory.Faker("text", max_nb_chars=1024)
72-
status: Faker = factory.Faker("pystr", max_chars=1)
73-
published: Faker = factory.Faker("date_between", start_date="-1y", end_date="-1d")
66+
hash: factory.Faker = factory.Faker("md5")
67+
title: factory.Faker = factory.Faker("sentence", nb_words=6)
68+
slug: factory.Faker = factory.Faker("slug")
69+
content: factory.Faker = factory.Faker("text", max_nb_chars=1024)
70+
status: factory.Faker = factory.Faker("pystr", max_chars=1)
71+
published: factory.Faker = factory.Faker("date_between", start_date="-1y", end_date="-1d")
7472

7573
@factory.post_generation
7674
def authors(self, create, extracted, **kwargs):
@@ -119,8 +117,8 @@ def misc(self, create, extracted, **kwargs):
119117

120118
class MediaFactory(factory.Factory):
121119
class Meta:
122-
model: t.Type[Media] = models.Media
120+
model: t.Type[models.Media] = models.Media
123121

124-
id: Faker = factory.Faker("sha256", raw_output=False)
125-
title: Faker = factory.Faker("sentence", nb_words=6)
126-
description: Faker = factory.Faker("sentence", nb_words=12, variable_nb_words=True)
122+
id: factory.Faker = factory.Faker("sha256", raw_output=False)
123+
title: factory.Faker = factory.Faker("sentence", nb_words=6)
124+
description: factory.Faker = factory.Faker("sentence", nb_words=12, variable_nb_words=True)

0 commit comments

Comments
 (0)