123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- from typing import List, Set
- import pytest
- from pynecone.compiler import utils
- from pynecone.utils import imports
- from pynecone.var import ImportVar
- @pytest.mark.parametrize(
- "fields,test_default,test_rest",
- [
- (
- {ImportVar(tag="axios", is_default=True)},
- "axios",
- set(),
- ),
- (
- {ImportVar(tag="foo"), ImportVar(tag="bar")},
- "",
- {"foo", "bar"},
- ),
- (
- {
- ImportVar(tag="axios", is_default=True),
- ImportVar(tag="foo"),
- ImportVar(tag="bar"),
- },
- "axios",
- {"foo", "bar"},
- ),
- ],
- )
- def test_compile_import_statement(
- fields: Set[ImportVar], test_default: str, test_rest: str
- ):
- """Test the compile_import_statement function.
- Args:
- fields: The fields to import.
- test_default: The expected output of default library.
- test_rest: The expected output rest libraries.
- """
- default, rest = utils.compile_import_statement(fields)
- assert default == test_default
- assert rest == test_rest
- @pytest.mark.parametrize(
- "import_dict,test_dicts",
- [
- ({}, []),
- (
- {"axios": {ImportVar(tag="axios", is_default=True)}},
- [{"lib": "axios", "default": "axios", "rest": set()}],
- ),
- (
- {"axios": {ImportVar(tag="foo"), ImportVar(tag="bar")}},
- [{"lib": "axios", "default": "", "rest": {"foo", "bar"}}],
- ),
- (
- {
- "axios": {
- ImportVar(tag="axios", is_default=True),
- ImportVar(tag="foo"),
- ImportVar(tag="bar"),
- },
- "react": {ImportVar(tag="react", is_default=True)},
- },
- [
- {"lib": "axios", "default": "axios", "rest": {"foo", "bar"}},
- {"lib": "react", "default": "react", "rest": set()},
- ],
- ),
- (
- {"": {ImportVar(tag="lib1.js"), ImportVar(tag="lib2.js")}},
- [
- {"lib": "lib1.js", "default": "", "rest": set()},
- {"lib": "lib2.js", "default": "", "rest": set()},
- ],
- ),
- (
- {
- "": {ImportVar(tag="lib1.js"), ImportVar(tag="lib2.js")},
- "axios": {ImportVar(tag="axios", is_default=True)},
- },
- [
- {"lib": "lib1.js", "default": "", "rest": set()},
- {"lib": "lib2.js", "default": "", "rest": set()},
- {"lib": "axios", "default": "axios", "rest": set()},
- ],
- ),
- ],
- )
- def test_compile_imports(import_dict: imports.ImportDict, test_dicts: List[dict]):
- """Test the compile_imports function.
- Args:
- import_dict: The import dictionary.
- test_dicts: The expected output.
- """
- imports = utils.compile_imports(import_dict)
- for import_dict, test_dict in zip(imports, test_dicts):
- assert import_dict["lib"] == test_dict["lib"]
- assert import_dict["default"] == test_dict["default"]
- assert import_dict["rest"] == test_dict["rest"]
- # @pytest.mark.parametrize(
- # "name,value,output",
- # [
- # ("foo", "bar", 'const foo = "bar"'),
- # ("num", 1, "const num = 1"),
- # ("check", False, "const check = false"),
- # ("arr", [1, 2, 3], "const arr = [1, 2, 3]"),
- # ("obj", {"foo": "bar"}, 'const obj = {"foo": "bar"}'),
- # ],
- # )
- # def test_compile_constant_declaration(name: str, value: str, output: str):
- # """Test the compile_constant_declaration function.
- # Args:
- # name: The name of the constant.
- # value: The value of the constant.
- # output: The expected output.
- # """
- # assert utils.compile_constant_declaration(name, value) == output
|