Skip to content

Commit 709daa6

Browse files
authored
convert test dirs to packages (pvlib#1204)
* convert test dirs to packages * fix cross module import of fixture in test_location * add whats new
1 parent 1ebe7b0 commit 709daa6

36 files changed

+75
-74
lines changed

docs/sphinx/source/whatsnew/v0.9.0.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ Bug fixes
120120

121121
Testing
122122
~~~~~~~
123+
* Added ``__init__.py`` to ``pvlib/tests`` and subdirectories. This follows
124+
pytest recommendations for package layout and imports from ``conftest.py``.
125+
Solves issue with test discovery in vscode. (:pull:`1204`)
123126

124127
Documentation
125128
~~~~~~~~~~~~~

pvlib/tests/__init__.py

Whitespace-only changes.

pvlib/tests/conftest.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from functools import wraps
99

1010
import pvlib
11+
from pvlib.location import Location
1112

1213
pvlib_base_version = \
1314
parse_version(parse_version(pvlib.__version__).base_version)
@@ -187,6 +188,25 @@ def has_numba():
187188
)
188189

189190

191+
@pytest.fixture()
192+
def golden():
193+
return Location(39.742476, -105.1786, 'America/Denver', 1830.14)
194+
195+
196+
@pytest.fixture()
197+
def golden_mst():
198+
return Location(39.742476, -105.1786, 'MST', 1830.14)
199+
200+
201+
@pytest.fixture()
202+
def expected_solpos():
203+
return pd.DataFrame({'elevation': 39.872046,
204+
'apparent_zenith': 50.111622,
205+
'azimuth': 194.340241,
206+
'apparent_elevation': 39.888378},
207+
index=['2003-10-17T12:30:30Z'])
208+
209+
190210
@pytest.fixture(scope="session")
191211
def sam_data():
192212
data = {}

pvlib/tests/iotools/__init__.py

Whitespace-only changes.

pvlib/tests/iotools/test_bsrn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import pytest
88

99
from pvlib.iotools import bsrn
10-
from conftest import DATA_DIR, assert_index_equal
10+
from ..conftest import DATA_DIR, assert_index_equal
1111

1212

1313
@pytest.mark.parametrize('testfile,expected_index', [

pvlib/tests/iotools/test_crn.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import pandas as pd
2-
from conftest import assert_frame_equal
32
import numpy as np
43
from numpy import dtype, nan
54
import pytest
65
from pvlib.iotools import crn
7-
from conftest import DATA_DIR
6+
from ..conftest import DATA_DIR, assert_frame_equal
87

98

109
@pytest.fixture

pvlib/tests/iotools/test_ecmwf_macc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import datetime
77
import numpy as np
88
import pytest
9-
from conftest import requires_netCDF4, DATA_DIR
9+
from ..conftest import requires_netCDF4, DATA_DIR
1010
from pvlib.iotools import ecmwf_macc
1111

1212
TESTDATA = 'aod550_tcwv_20121101_test.nc'

pvlib/tests/iotools/test_epw.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22

33
from pvlib.iotools import epw
4-
from conftest import DATA_DIR, RERUNS, RERUNS_DELAY
4+
from ..conftest import DATA_DIR, RERUNS, RERUNS_DELAY
55

66
epw_testfile = DATA_DIR / 'NLD_Amsterdam062400_IWEC.epw'
77

pvlib/tests/iotools/test_midc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import pytz
44

55
from pvlib.iotools import midc
6-
from conftest import DATA_DIR, RERUNS, RERUNS_DELAY
6+
from ..conftest import DATA_DIR, RERUNS, RERUNS_DELAY
77

88

99
@pytest.fixture

pvlib/tests/iotools/test_psm3.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import os
66
from pvlib.iotools import psm3
7-
from conftest import DATA_DIR, RERUNS, RERUNS_DELAY
7+
from ..conftest import DATA_DIR, RERUNS, RERUNS_DELAY
88
import numpy as np
99
import pandas as pd
1010
import pytest

pvlib/tests/iotools/test_pvgis.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import pytest
88
import requests
99
from pvlib.iotools import get_pvgis_tmy, read_pvgis_tmy
10-
from conftest import DATA_DIR, RERUNS, RERUNS_DELAY
10+
from ..conftest import DATA_DIR, RERUNS, RERUNS_DELAY
1111

1212

1313
@pytest.fixture

pvlib/tests/iotools/test_solrad.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import pandas as pd
2-
from conftest import assert_frame_equal
32
import numpy as np
43
from numpy import nan
54

65
import pytest
76

87
from pvlib.iotools import solrad
9-
from conftest import DATA_DIR
8+
from ..conftest import DATA_DIR, assert_frame_equal
109

1110

1211
testfile = DATA_DIR / 'abq19056.dat'

pvlib/tests/iotools/test_srml.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import pytest
44

55
from pvlib.iotools import srml
6-
from conftest import DATA_DIR, RERUNS, RERUNS_DELAY
6+
from ..conftest import DATA_DIR, RERUNS, RERUNS_DELAY
77

88
srml_testfile = DATA_DIR / 'SRML-day-EUPO1801.txt'
99

pvlib/tests/iotools/test_surfrad.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pytest
33

44
from pvlib.iotools import surfrad
5-
from conftest import DATA_DIR, RERUNS, RERUNS_DELAY
5+
from ..conftest import DATA_DIR, RERUNS, RERUNS_DELAY
66

77
testfile = DATA_DIR / 'surfrad-slv16001.dat'
88
network_testfile = ('ftp://aftp.cmdl.noaa.gov/data/radiation/surfrad/'

pvlib/tests/iotools/test_tmy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import numpy as np
22
import pandas as pd
33
from pvlib.iotools import tmy
4-
from conftest import DATA_DIR
4+
from ..conftest import DATA_DIR
55

66
# test the API works
77
from pvlib.iotools import read_tmy3

pvlib/tests/ivtools/__init__.py

Whitespace-only changes.

pvlib/tests/ivtools/test_sdm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from pvlib.tests.conftest import requires_pysam, requires_statsmodels
1111

12-
from conftest import DATA_DIR
12+
from ..conftest import DATA_DIR
1313

1414

1515
@pytest.fixture

pvlib/tests/ivtools/test_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from pvlib.ivtools.utils import _numdiff, rectify_iv_curve
55
from pvlib.ivtools.utils import _schumaker_qspline
66

7-
from conftest import DATA_DIR
7+
from ..conftest import DATA_DIR
88

99

1010
@pytest.fixture

pvlib/tests/test_atmosphere.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from numpy import nan
55
from numpy.testing import assert_allclose
66
import pandas as pd
7-
from conftest import assert_series_equal
7+
from .conftest import assert_series_equal
88
import pytest
99

1010
from pvlib import atmosphere

pvlib/tests/test_bifacial.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pandas as pd
22
from datetime import datetime
33
from pvlib.bifacial import pvfactors_timeseries
4-
from conftest import requires_pvfactors, assert_series_equal
4+
from .conftest import requires_pvfactors, assert_series_equal
55
import pytest
66

77

pvlib/tests/test_clearsky.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88

99
import pytest
1010
from numpy.testing import assert_allclose
11-
from conftest import assert_frame_equal, assert_series_equal
11+
from .conftest import assert_frame_equal, assert_series_equal
1212

1313
from pvlib.location import Location
1414
from pvlib import clearsky
1515
from pvlib import solarposition
1616
from pvlib import atmosphere
1717
from pvlib import irradiance
1818

19-
from conftest import requires_tables, DATA_DIR
19+
from .conftest import requires_tables, DATA_DIR
2020

2121

2222
def test_ineichen_series():

pvlib/tests/test_conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import pytest
22
import pandas
33

4-
import conftest
5-
from conftest import fail_on_pvlib_version
4+
from pvlib.tests import conftest
5+
from pvlib.tests.conftest import fail_on_pvlib_version
66

77
from pvlib._deprecation import pvlibDeprecationWarning, deprecated
88

pvlib/tests/test_forecast.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
import pytest
77
from numpy.testing import assert_allclose
88

9-
from conftest import (
9+
from .conftest import (
1010
requires_siphon,
1111
has_siphon,
1212
skip_windows,
1313
requires_recent_cftime
1414
)
15-
from conftest import RERUNS, RERUNS_DELAY
15+
from .conftest import RERUNS, RERUNS_DELAY
1616

1717
pytestmark = pytest.mark.skipif(not has_siphon, reason='requires siphon')
1818

pvlib/tests/test_iam.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import pandas as pd
99

1010
import pytest
11-
from conftest import assert_series_equal
11+
from .conftest import assert_series_equal
1212
from numpy.testing import assert_allclose
1313

1414
from pvlib import iam as _iam

pvlib/tests/test_inverter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import numpy as np
22
import pandas as pd
33

4-
from conftest import assert_series_equal
4+
from .conftest import assert_series_equal
55
from numpy.testing import assert_allclose
66

7-
from conftest import DATA_DIR
7+
from .conftest import DATA_DIR
88
import pytest
99

1010
from pvlib import inverter

pvlib/tests/test_irradiance.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
from pvlib import irradiance
1313

14-
from conftest import (
14+
from .conftest import (
1515
assert_frame_equal,
1616
assert_series_equal,
1717
requires_ephem,

pvlib/tests/test_location.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import numpy as np
55
from numpy import nan
66
import pandas as pd
7-
from conftest import assert_frame_equal, assert_index_equal
7+
from .conftest import assert_frame_equal, assert_index_equal
88

99
import pytest
1010

@@ -15,8 +15,7 @@
1515
from pvlib.location import Location
1616
from pvlib.solarposition import declination_spencer71
1717
from pvlib.solarposition import equation_of_time_spencer71
18-
from test_solarposition import expected_solpos, golden, golden_mst
19-
from conftest import requires_ephem, requires_tables, fail_on_pvlib_version
18+
from .conftest import requires_ephem, requires_tables
2019

2120

2221
def test_location_required():
@@ -212,7 +211,7 @@ def test_get_clearsky_valueerror(times):
212211

213212

214213
def test_from_tmy_3():
215-
from test_tmy import TMY3_TESTFILE
214+
from pvlib.tests.iotools.test_tmy import TMY3_TESTFILE
216215
from pvlib.iotools import read_tmy3
217216
data, meta = read_tmy3(TMY3_TESTFILE)
218217
loc = Location.from_tmy(meta, data)
@@ -223,7 +222,7 @@ def test_from_tmy_3():
223222

224223

225224
def test_from_tmy_2():
226-
from test_tmy import TMY2_TESTFILE
225+
from pvlib.tests.iotools.test_tmy import TMY2_TESTFILE
227226
from pvlib.iotools import read_tmy2
228227
data, meta = read_tmy2(TMY2_TESTFILE)
229228
loc = Location.from_tmy(meta, data)
@@ -234,7 +233,7 @@ def test_from_tmy_2():
234233

235234

236235
def test_from_epw():
237-
from test_epw import epw_testfile
236+
from pvlib.tests.iotools.test_epw import epw_testfile
238237
from pvlib.iotools import read_epw
239238
data, meta = read_epw(epw_testfile)
240239
loc = Location.from_epw(meta, data)

pvlib/tests/test_modelchain.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
from pvlib.location import Location
1111
from pvlib._deprecation import pvlibDeprecationWarning
1212

13-
from conftest import assert_series_equal, assert_frame_equal
13+
from .conftest import assert_series_equal, assert_frame_equal
1414
import pytest
1515

16-
from conftest import fail_on_pvlib_version, requires_tables
16+
from .conftest import fail_on_pvlib_version, requires_tables
1717

1818

1919
@pytest.fixture(scope='function')

pvlib/tests/test_numerical_precision.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import pandas as pd
2222
from pvlib import pvsystem
2323
from pvlib.singlediode import bishop88, estimate_voc
24-
from conftest import DATA_DIR
24+
from .conftest import DATA_DIR
2525

2626
logging.basicConfig()
2727
LOGGER = logging.getLogger(__name__)

pvlib/tests/test_pvsystem.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import pandas as pd
66

77
import pytest
8-
from conftest import (
8+
from .conftest import (
99
assert_series_equal, assert_frame_equal, fail_on_pvlib_version)
1010
from numpy.testing import assert_allclose
1111
import unittest.mock as mock

pvlib/tests/test_snow.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import numpy as np
22
import pandas as pd
33

4-
from conftest import assert_series_equal
4+
from .conftest import assert_series_equal
55

66
from pvlib import snow
77
from pvlib.tools import sind

pvlib/tests/test_soiling.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
import datetime
44
import numpy as np
55
import pandas as pd
6-
from conftest import assert_series_equal
6+
from .conftest import assert_series_equal
77
from pvlib.soiling import hsu, kimber
88
from pvlib.iotools import read_tmy3
9-
from conftest import DATA_DIR
9+
from .conftest import DATA_DIR
1010
import pytest
1111

1212

0 commit comments

Comments
 (0)