File: test_compat.py

package info (click to toggle)
python-geopandas 1.1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,752 kB
  • sloc: python: 26,021; makefile: 147; sh: 25
file content (30 lines) | stat: -rw-r--r-- 923 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from geopandas._compat import import_optional_dependency

import pytest


def test_import_optional_dependency_present():
    # pandas is not optional, but we know it is present
    pandas = import_optional_dependency("pandas")
    assert pandas is not None

    # module imported normally must be same
    import pandas as pd

    assert pandas == pd


def test_import_optional_dependency_absent():
    with pytest.raises(ImportError, match="Missing optional dependency 'foo'"):
        import_optional_dependency("foo")

    with pytest.raises(ImportError, match="foo is required"):
        import_optional_dependency("foo", extra="foo is required")


@pytest.mark.parametrize(
    "bad_import", [["foo"], 0, False, True, {}, {"foo"}, {"foo": "bar"}]
)
def test_import_optional_dependency_invalid(bad_import):
    with pytest.raises(ValueError, match="Invalid module name"):
        import_optional_dependency(bad_import)