コード例 #1
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_create_and_switch_project(bwtest):
    backend = backend_mapping["tests"]
    assert not backend.activated
    projects.create_project("foo", backends=["tests"])
    assert backend.activated.name == "foo"
    assert backend.created.name == "foo"
    assert projects.current.name == "foo"
コード例 #2
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_select_project(bwtest):
    backend = backend_mapping["tests"]
    projects.create_project("foo", backends=["tests"], switch=False)
    assert backend.created.name == "foo"
    assert not backend.activated
    projects.select("foo")
    assert backend.activated.name == "foo"
    assert projects.current.name == "foo"
コード例 #3
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_delete_project_not_current(bwtest):
    projects.create_project("foo", backends=["tests"])
    projects.create_project("bar", backends=["tests"])
    assert projects.dir.is_dir()
    assert projects.current
    projects.delete_project("foo")
    assert projects.current
    assert "foo" not in projects
コード例 #4
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_projects_iteration_skips_disabled(bwtest):
    projects.create_project(name="foo", backends=["tests"])
    projects.create_project(name="bar", backends=["tests"])
    assert len(projects) == 2
    p = Project.get(name="bar")
    p.enabled = False
    p.save()
    for proj in projects:
        assert proj.name != "bar"
コード例 #5
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_activate_deactivate(bwtest):
    backend = backend_mapping["tests"]
    projects.create_project("foo", backends=["tests"])
    projects.deactivate()
    assert not backend.activated
    assert projects.current is None
    projects.current = Project.get(name="foo")
    assert not backend.activated
    projects.activate()
    assert backend.activated
コード例 #6
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_representation(bwtest):
    assert repr(projects)
    assert str(projects)
    projects.create_project(name="foo", backends=["tests"])
    assert repr(projects)
    assert str(projects)
    for x in range(25):
        projects.create_project(name=f"project-{x}", backends=["tests"])
    assert repr(projects)
    assert str(projects)
コード例 #7
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_setup(bwtest):
    assert not projects.current
    assert not projects.dir
    projects.create_project(name="foo", backends=["tests"])
    assert os.path.isdir(projects.base_dir)
    assert os.path.isdir(projects.base_log_dir)
    p = Project.get(name="foo")
    assert not p.data
    assert "projects.test.db" in os.listdir(bwtest)
    assert "__logs__" in os.listdir(bwtest)
コード例 #8
0
def test_add_base_data(bwtest):
    projects.create_project("foo", add_base_data=True)
    assert config.project
    assert "db" in os.listdir(config.project.directory)
    assert not Collection.select().count()
    assert not Method.select().count()
    assert UncertaintyType.select().count() == 12
    assert Location.select().count() == 1
    assert Geocollection.select().count() == 1
    assert not Flow.select().count()
    assert not Activity.select().count()
コード例 #9
0
def test_basic_setup(bwtest):
    projects.create_project("foo")
    assert config.project
    assert "db" in os.listdir(config.project.directory)
    assert not Collection.select().count()
    assert not Method.select().count()
    assert not UncertaintyType.select().count()
    assert not Location.select().count()
    assert not Geocollection.select().count()
    assert not Flow.select().count()
    assert not Activity.select().count()
コード例 #10
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_really_funny_project_names(bwtest):
    NAMES = [
        "Roses are red, violets are blue. Hope you enjoy terminal hue",
        "👾 🙇 💁 🙅 🙆 🙋 🙎 🙍 ",
    ]
    error_found = False
    for name in NAMES:
        try:
            projects.create_project(name, backends=["tests"])
            assert os.path.isdir(projects.dir)
            print("This is OK:", name)
        except:
            print("This is not OK:", name)
            error_found = True
    if error_found:
        raise ValueError("Invaid project name")
コード例 #11
0
def test_geocollection_modified_autoupdates(bwtest):
    projects.create_project("test")
    now = datetime.datetime.utcnow() - datetime.timedelta(minutes=1)
    Geocollection.create(name="foo", modified=now - datetime.timedelta(days=1))
    gc = Geocollection.get(name="foo")
    assert gc.modified < now

    Location.create(geocollection=gc, name="bar")
    gc = Geocollection.get(name="foo")
    assert gc.modified > now

    gc.modified = now
    gc.save()

    Location.get(name="bar").delete_instance()
    gc = Geocollection.get(name="foo")
    assert gc.modified > now
コード例 #12
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_funny_project_names(bwtest):
    NAMES = [
        "Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗",
        "True",
        "None",
        "1.0/0.0",
        "0xabad1dea",
        "!@#$%^&*()`~",
        "<>?:'{}|_+",
        r",./;'[]\-=",
        "Ω≈ç√∫˜µ≤≥÷",
        "田中さんにあげて下さい",
        "`ィ(´∀`∩",
        "הָיְתָהtestالصفحات التّحول",
        " ",
    ]
    for name in NAMES:
        projects.create_project(name, backends=["tests"])
        assert os.path.isdir(projects.dir)
コード例 #13
0
def test_geocollection_modified_autoupdates_location_moved(bwtest):
    projects.create_project("test")
    now = datetime.datetime.utcnow() - datetime.timedelta(minutes=1)
    gc = Geocollection.create(name="foo",
                              modified=now - datetime.timedelta(days=1))
    Location.create(geocollection=gc, name="bar")
    Geocollection.create(name="baz", modified=now - datetime.timedelta(days=1))
    gc = Geocollection.get(name="foo")
    gc.modified = now - datetime.timedelta(days=1)
    gc.save()

    for obj in Geocollection.select():
        assert obj.modified < now

    l = Location.get(name="bar")
    l.geocollection = Geocollection.get(name="baz")
    l.save()

    for obj in Geocollection.select():
        assert obj.modified > now
コード例 #14
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_projects_iteration(bwtest):
    projects.create_project(name="foo", backends=["tests"])
    projects.create_project(name="bar", backends=["tests"])
    projects.create_project(name="baz", backends=["tests"])
    count = 0
    for x in projects:
        count += 1
    assert count == 3
コード例 #15
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_projects_len_skips_disabled(bwtest):
    projects.create_project(name="foo", backends=["tests"])
    projects.create_project(name="bar", backends=["tests"])
    assert len(projects) == 2
    projects.create_project(name="baz", backends=["tests"])
    assert len(projects) == 3
    p = Project.get(name="bar")
    p.enabled = False
    p.save()
    assert len(projects) == 2
コード例 #16
0
def test_has_project(bwtest):
    projects.create_project("foo")
    dummy_function()
コード例 #17
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_projects_len(bwtest):
    projects.create_project(name="foo", backends=["tests"])
    projects.create_project(name="bar", backends=["tests"])
    assert len(projects) == 2
    projects.create_project(name="baz", backends=["tests"])
    assert len(projects) == 3
コード例 #18
0
def test_deactivation(bwtest):
    projects.create_project("foo")
    config.deactivate_project()
    assert not config.project
コード例 #19
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_setup_default_project(bwtest):
    assert not projects.dir
    assert not projects.current
    projects.create_project(name="foo", backends=["tests"], default=True)
    p2 = ProjectManager(projects.base_dir, projects.base_log_dir)
    assert p2.current
コード例 #20
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_create_project_without_backends(bwtest):
    for key in list(backend_mapping):
        del backend_mapping[key]
    with pytest.raises(MissingBackend):
        projects.create_project("foo", backends=None)
コード例 #21
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_delete_project_name_string(bwtest):
    projects.create_project("foo", backends=["tests"])
    assert projects.dir.is_dir()
    assert projects.current
    projects.delete_project("foo")
    assert projects.current is None
コード例 #22
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_delete_project_error(bwtest):
    projects.create_project("foo", backends=["tests"])
    with pytest.raises(ValueError):
        projects.delete_project("bar")
コード例 #23
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_contains(bwtest):
    assert "foo" not in projects
    projects.create_project(name="foo", backends=["tests"])
    assert "foo" in projects
コード例 #24
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_delete_project_and_deactivate(bwtest):
    projects.create_project("foo", backends=["tests"])
    assert projects.dir.is_dir()
    assert projects.current
    projects.delete_project(projects.current)
    assert projects.current is None
コード例 #25
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_dot_dir(bwtest):
    assert not projects.dir
    projects.create_project(name="foo", backends=["tests"])
    assert projects.dir == projects.current.directory
    assert projects.dir.is_dir()
コード例 #26
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_create_project_creates_dir(bwtest):
    projects.create_project("foo", backends=["tests"])
    assert projects.dir.is_dir()
コード例 #27
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_project_report(bwtest):
    projects.create_project("foo", backends=["tests"])
    assert projects.report()
コード例 #28
0
ファイル: projects.py プロジェクト: brightway-lca/bw_projects
def test_create_project_already_exists(bwtest):
    projects.create_project("foo", backends=["tests"])
    assert projects.create_project("foo", backends=["tests"]) is None