Skip to content

Commit adadab0

Browse files
committed
Update abstra-lib
1 parent 2fb9fca commit adadab0

29 files changed

+128
-88
lines changed

pyrightconfig.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
"reportMissingImports": true,
1212
"reportMissingTypeStubs": false,
1313
"pythonVersion": "3.8",
14-
"pythonPlatform": "Linux",
15-
}
14+
"pythonPlatform": "Linux"
15+
}

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os, re, pathlib
22
from setuptools import setup, find_packages
33

4-
regex = "^v(\d+\.\d+\.\d+)$"
4+
regex = r"^v(\d+\.\d+\.\d+)$"
55
TAG = os.getenv("TAG", "v0.0.0")
66
if not TAG or not re.search(regex, TAG):
77
raise ValueError("TAG environment variable must be in the format v1.2.3")

tests/fixtures.py

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import os, json, tempfile, shutil, typing
21
from pathlib import Path
3-
import shutil
2+
import os, json, tempfile, shutil, typing
43

54
from abstra_internals.settings import SettingsController
5+
from abstra_internals.server.controller import MainController
6+
from abstra_internals.server import get_local_app, get_cloud_app
67

78
abstra_json = {"version": "0.2"}
89

@@ -32,6 +33,17 @@ def init_dir(path: typing.Optional[Path] = None):
3233
return path
3334

3435

36+
def get_local_client():
37+
controller = MainController()
38+
app = get_local_app(controller)
39+
return app.test_client()
40+
41+
42+
def get_cloud_client(root: Path):
43+
app = get_cloud_app(str(root))
44+
return app.test_client()
45+
46+
3547
def clear_dir(path: Path):
3648
os.chdir(path.parent)
3749
rm_tree(path)

tests/test_credentials.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import unittest
2+
3+
from .fixtures import init_dir, clear_dir
4+
25
from abstra_internals.credentials import (
3-
get_credentials,
46
delete_credentials,
57
set_credentials,
8+
get_credentials,
69
)
7-
from .fixtures import init_dir, clear_dir
810

911

1012
class TestCredentials(unittest.TestCase):

tests/test_file_sending.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
import unittest
22

3-
from abstra_internals.server.apps.local import get_local_app
3+
from .fixtures import clear_dir, init_dir
4+
5+
from abstra_internals.server import get_local_app
46
from abstra_internals.server.utils import send_from_dist
7+
from abstra_internals.widgets.file_utils import convert_file
58
from abstra_internals.server.controller import MainController
69
from abstra_internals.widgets.apis import get_random_filepath, internal_path
7-
from abstra_internals.widgets.file_utils import convert_file
8-
9-
from .fixtures import clear_dir, init_dir
1010

1111

1212
class TestFileSending(unittest.TestCase):
1313
def setUp(self) -> None:
1414
self.path = init_dir()
1515
controller = MainController()
16+
1617
self.app = get_local_app(controller)
17-
self.client = self.app.test_client()
1818
self.app_context = self.app.app_context()
1919
self.app_context.push()
2020

tests/test_form_examples.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
from abstra_internals.repositories.project.project import FormStage
2-
from .utils import assert_form
3-
import unittest, json, os
1+
import unittest, json
42
from pathlib import Path
3+
4+
from .utils import assert_form
55
from .fixtures import init_dir, clear_dir
66

7+
from abstra_internals.repositories.project.project import FormStage
8+
79

810
class TestFormExamples(unittest.TestCase):
911
def setUp(self) -> None:

tests/test_forms.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import unittest
2-
from abstra_internals.server.controller import MainController
2+
33
from .fixtures import init_dir, clear_dir
4+
45
from abstra.forms import display
6+
from abstra_internals.server.controller import MainController
57
from abstra_internals.execution.execution import NoExecutionFound
68

79

@@ -22,6 +24,9 @@ def updates_across_reloads(self):
2224
api2.get_workspace()
2325
new_form = api2.get_form(form.path)
2426

27+
if not new_form:
28+
self.fail("Form not found")
29+
2530
self.assertEqual(form.title, new_form.title)
2631

2732
def test_raise_exception_on_invalid_propery_update(self):

tests/test_hook_execution.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import unittest
2-
from .fixtures import init_dir, clear_dir
3-
from abstra_internals.server.controller import MainController
4-
from abstra_internals.repositories.project.project import Project, HookStage
5-
from abstra_internals.server import get_local_app
2+
3+
from .fixtures import init_dir, clear_dir, get_local_client
4+
65
from abstra_internals.repositories.project.project import ProjectRepository
6+
from abstra_internals.repositories.project.project import Project, HookStage
77

88

99
class TestHookExecution(unittest.TestCase):
1010
def setUp(self) -> None:
1111
self.root = init_dir()
12-
controller = MainController()
1312
project = Project.create()
13+
1414
file = "initial_hook.py"
1515
self.root.joinpath(file).write_text("print('hello world')")
1616
hook = HookStage(
@@ -21,12 +21,12 @@ def setUp(self) -> None:
2121
)
2222
project.hooks.append(hook)
2323
ProjectRepository.save(project)
24-
self.client = get_local_app(controller).test_client()
24+
25+
self.client = get_local_client()
2526

2627
def tearDown(self) -> None:
2728
clear_dir(self.root)
2829

2930
def test_initial_case(self):
30-
path = "initial_hook"
3131
response = self.client.post("/_hooks/initial_hook")
3232
self.assertEqual(response.status_code, 200)

tests/test_hot_reload_local_modules.py

+10-11
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
1-
from datetime import datetime
2-
from pathlib import Path
31
import time
2+
from pathlib import Path
3+
from datetime import datetime
44
from unittest import TestCase
5+
6+
from .fixtures import clear_dir, init_dir, get_local_client
7+
8+
from abstra_internals.server.fs_watcher import reload_files_on_change
59
from abstra_internals.repositories.project.project import (
6-
Project,
710
ProjectRepository,
811
HookStage,
12+
Project,
913
)
10-
from abstra_internals.server import get_local_app
11-
12-
from abstra_internals.server.controller import MainController
13-
from abstra_internals.server.fs_watcher import reload_files_on_change
14-
15-
from .fixtures import clear_dir, init_dir
1614

1715

1816
class TestHotReloadLocalModules(TestCase):
1917
def setUp(self):
2018
self.root = init_dir()
21-
controller = MainController()
2219
self.project = Project.create()
20+
2321
file = "hook.py"
2422
hook = HookStage(
2523
file=file,
@@ -29,7 +27,8 @@ def setUp(self):
2927
)
3028
self.project.hooks.append(hook)
3129
ProjectRepository.save(self.project)
32-
self.client = get_local_app(controller).test_client()
30+
31+
self.client = get_local_client()
3332

3433
def tearDown(self) -> None:
3534
clear_dir(self.root)

tests/test_linters.py

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
1+
from pathlib import Path
12
from unittest import TestCase
3+
from pkg_resources import get_distribution
4+
25
from .fixtures import init_dir, clear_dir
6+
37
from abstra_internals.server.controller import MainController
48
from abstra_internals.linter.rules.env_in_bundle import EnvInBundle
59
from abstra_internals.linter.rules.syntax_errors import SyntaxErrors
10+
611
from abstra_internals.linter.rules.missing_packages_in_requirements import (
712
MissingPackagesInRequirements,
813
)
14+
15+
from abstra_internals.linter.rules.missing_abstra_in_requirements import (
16+
MissingAbstraInRequirements,
17+
)
18+
919
from abstra_internals.linter.rules.missing_entrypoint import (
1020
MissingEntrypoint,
1121
AddEntrypoint,
1222
)
13-
from abstra_internals.linter.rules.missing_abstra_in_requirements import (
14-
MissingAbstraInRequirements,
15-
)
16-
from pathlib import Path
17-
from pkg_resources import get_distribution
1823

1924

2025
class TestLinters(TestCase):

tests/test_list_input.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import unittest
2+
3+
from abstra.forms.page import Page
24
from abstra_internals.widgets.library import ListInput
35
from abstra.forms.list_item_schema import ListItemSchema
4-
from abstra.forms.page import Page
56

67
default_text_input = {
78
"type": "text-input",

tests/test_listing.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import unittest
2-
from abstra_internals.utils.file import files_from_directory
2+
33
from .fixtures import init_dir, clear_dir
44

5+
from abstra_internals.utils.file import files_from_directory
6+
57

68
class TestListing(unittest.TestCase):
79
def add_file(self, name, content, path=None):

tests/test_path_setings.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import tempfile, unittest
22
from pathlib import Path
3-
from abstra_internals.server.controller import MainController
3+
44
from .fixtures import init_dir, clear_dir
55

6+
from abstra_internals.server.controller import MainController
7+
68

79
class TestWorkspace(unittest.TestCase):
810
def setUp(self) -> None:

tests/test_player_api.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import unittest
2-
from .fixtures import init_dir, clear_dir
3-
from abstra_internals.server import get_cloud_app
2+
3+
from .fixtures import init_dir, clear_dir, get_cloud_client
44

55

66
class TestPlayerApi(unittest.TestCase):
77
def setUp(self) -> None:
88
self.root = init_dir()
9-
self.client = get_cloud_app(str(self.root)).test_client()
9+
self.client = get_cloud_client(self.root)
1010

1111
def tearDown(self) -> None:
1212
clear_dir(self.root)

tests/test_reactive.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
from abstra_internals.execution import LiveExecution, Execution
2-
from threading import get_ident
31
import unittest
4-
from abstra.forms import Page
52
from collections import deque
3+
from threading import get_ident
4+
5+
from abstra.forms import Page
6+
from abstra_internals.execution import LiveExecution, Execution
67

78

89
class MockLiveExecution(LiveExecution):

tests/test_requirements_api.py

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
from unittest import TestCase
2-
from .fixtures import init_dir, clear_dir
3-
from abstra_internals.server.controller import MainController
4-
from abstra_internals.server import get_local_app
51
from pathlib import Path
2+
from unittest import TestCase
3+
4+
from .fixtures import init_dir, clear_dir, get_local_client
65

76

87
class TestRequirementsApi(TestCase):
98
def setUp(self) -> None:
109
self.root = init_dir()
11-
controller = MainController()
12-
self.client = get_local_app(controller).test_client()
10+
self.client = get_local_client()
1311

1412
def tearDown(self) -> None:
1513
clear_dir(self.root)

tests/test_requirements_repository.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from unittest import TestCase
2+
23
from abstra_internals.repositories.requirements import Requirement, Requirements
34

45

tests/test_server_hooks.py

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import unittest, pathlib
2-
from abstra_internals.server.controller import MainController
3-
from .fixtures import init_dir, clear_dir
4-
from abstra_internals.server import get_local_app
2+
3+
from .fixtures import init_dir, clear_dir, get_local_client
4+
55
from abstra_internals.templates import new_hook_code
66
from abstra_internals.repositories.project.project import ProjectRepository
77

88

99
class TestHooks(unittest.TestCase):
1010
def setUp(self) -> None:
1111
self.root = init_dir()
12-
controller = MainController()
13-
self.client = get_local_app(controller).test_client()
12+
self.client = get_local_client()
1413

1514
def tearDown(self) -> None:
1615
clear_dir(self.root)
@@ -37,12 +36,10 @@ def test_create_hook_with_right_template(self):
3736
self.assertEqual(file_content, new_hook_code)
3837

3938
def test_renaming_hook_should_change_all_transitions_pointing_to_it(self):
40-
controller = MainController()
41-
4239
source = self.client.post("/_editor/api/forms/").get_json()
4340
target = self.client.post("/_editor/api/hooks/").get_json()
4441

45-
res = self.client.post(
42+
self.client.post(
4643
"/_editor/api/workflows/add-transition",
4744
json=[
4845
{

tests/test_server_workspaces.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import tempfile, unittest
2-
from pathlib import Path
3-
from abstra_internals.server.controller import MainController
1+
import unittest
2+
43
from .fixtures import init_dir, clear_dir
54

5+
from abstra_internals.server.controller import MainController
6+
67

78
class TestWorkspace(unittest.TestCase):
89
def setUp(self) -> None:

tests/test_sidebar.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import unittest
2-
from abstra_internals.server.controller import MainController
2+
33
from .fixtures import init_dir, clear_dir
44

5+
from abstra_internals.server.controller import MainController
6+
57

68
class TestSidebar(unittest.TestCase):
79
def setUp(self) -> None:

tests/test_tables.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import unittest
22
from dataclasses import dataclass
3+
34
from abstra.tables.api import (
45
_make_insert_query,
56
_make_delete_query,

0 commit comments

Comments
 (0)