Python pytest.importorskip() Examples
The following are 30
code examples of pytest.importorskip().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
pytest
, or try the search function
.
Example #1
Source File: test_plotting.py From pygbm with MIT License | 10 votes |
def test_plot_estimator_and_lightgbm(tmpdir): pytest.importorskip('graphviz') lightgbm = pytest.importorskip('lightgbm') from pygbm.plotting import plot_tree n_classes = 3 X, y = make_classification(n_samples=150, n_classes=n_classes, n_features=5, n_informative=3, n_redundant=0, random_state=0) n_trees = 3 est_pygbm = GradientBoostingClassifier(max_iter=n_trees, n_iter_no_change=None) est_pygbm.fit(X, y) est_lightgbm = lightgbm.LGBMClassifier(n_estimators=n_trees) est_lightgbm.fit(X, y) n_total_trees = n_trees * n_classes for i in range(n_total_trees): filename = tmpdir.join('plot_mixed_predictors.pdf') plot_tree(est_pygbm, est_lightgbm=est_lightgbm, tree_index=i, view=False, filename=filename) assert filename.exists()
Example #2
Source File: pytester.py From python-netsurv with MIT License | 6 votes |
def spawn(self, cmd, expect_timeout=10.0): """Run a command using pexpect. The pexpect child is returned. """ pexpect = pytest.importorskip("pexpect", "3.0") if hasattr(sys, "pypy_version_info") and "64" in platform.machine(): pytest.skip("pypy-64 bit not supported") if sys.platform.startswith("freebsd"): pytest.xfail("pexpect does not work reliably on freebsd") logfile = self.tmpdir.join("spawn.out").open("wb") # Do not load user config. env = os.environ.copy() env.update(self._env_run_update) child = pexpect.spawn(cmd, logfile=logfile, env=env) self.request.addfinalizer(logfile.close) child.timeout = expect_timeout return child
Example #3
Source File: conftest.py From filesystem_spec with BSD 3-Clause "New" or "Revised" License | 6 votes |
def ftp_writable(tmpdir): """ Fixture providing a writable FTP filesystem. """ pytest.importorskip("pyftpdlib") from fsspec.implementations.ftp import FTPFileSystem FTPFileSystem.clear_instance_cache() # remove lingering connections CachingFileSystem.clear_instance_cache() d = str(tmpdir) with open(os.path.join(d, "out"), "wb") as f: f.write(b"hello" * 10000) P = subprocess.Popen( [sys.executable, "-m", "pyftpdlib", "-d", d, "-u", "user", "-P", "pass", "-w"] ) try: time.sleep(1) yield "localhost", 2121, "user", "pass" finally: P.terminate() P.wait() try: shutil.rmtree(tmpdir) except Exception: pass
Example #4
Source File: test_common.py From recruit with Apache License 2.0 | 6 votes |
def test_write_fspath_hdf5(self): # Same test as write_fspath_all, except HDF5 files aren't # necessarily byte-for-byte identical for a given dataframe, so we'll # have to read and compare equality pytest.importorskip('tables') df = pd.DataFrame({"A": [1, 2]}) p1 = tm.ensure_clean('string') p2 = tm.ensure_clean('fspath') with p1 as string, p2 as fspath: mypath = CustomFSPath(fspath) df.to_hdf(mypath, key='bar') df.to_hdf(string, key='bar') result = pd.read_hdf(fspath, key='bar') expected = pd.read_hdf(string, key='bar') tm.assert_frame_equal(result, expected)
Example #5
Source File: test_converter.py From recruit with Apache License 2.0 | 6 votes |
def test_option_no_warning(self): pytest.importorskip("matplotlib.pyplot") ctx = cf.option_context("plotting.matplotlib.register_converters", False) plt = pytest.importorskip("matplotlib.pyplot") s = Series(range(12), index=date_range('2017', periods=12)) _, ax = plt.subplots() converter._WARN = True # Test without registering first, no warning with ctx: with tm.assert_produces_warning(None) as w: ax.plot(s.index, s.values) assert len(w) == 0 # Now test with registering converter._WARN = True register_matplotlib_converters() with ctx: with tm.assert_produces_warning(None) as w: ax.plot(s.index, s.values) assert len(w) == 0
Example #6
Source File: test_common.py From recruit with Apache License 2.0 | 6 votes |
def test_read_expands_user_home_dir(self, reader, module, error_class, fn_ext, monkeypatch): pytest.importorskip(module) path = os.path.join('~', 'does_not_exist.' + fn_ext) monkeypatch.setattr(icom, '_expand_user', lambda x: os.path.join('foo', x)) msg1 = (r"File (b')?.+does_not_exist\.{}'? does not exist" .format(fn_ext)) msg2 = (r"\[Errno 2\] No such file or directory:" r" '.+does_not_exist\.{}'").format(fn_ext) msg3 = "Unexpected character found when decoding 'false'" msg4 = "path_or_buf needs to be a string file path or file-like" msg5 = (r"\[Errno 2\] File .+does_not_exist\.{} does not exist:" r" '.+does_not_exist\.{}'").format(fn_ext, fn_ext) with pytest.raises(error_class, match=r"({}|{}|{}|{}|{})".format( msg1, msg2, msg3, msg4, msg5)): reader(path)
Example #7
Source File: fixtures.py From qutebrowser with GNU General Public License v3.0 | 6 votes |
def webpage(qnam): """Get a new QWebPage object.""" QtWebKitWidgets = pytest.importorskip('PyQt5.QtWebKitWidgets') class WebPageStub(QtWebKitWidgets.QWebPage): """QWebPage with default error pages disabled.""" def supportsExtension(self, _ext): """No extensions needed.""" return False page = WebPageStub() page.networkAccessManager().deleteLater() page.setNetworkAccessManager(qnam) from qutebrowser.browser.webkit import webkitsettings webkitsettings._init_user_agent() return page
Example #8
Source File: test_rank.py From recruit with Apache License 2.0 | 6 votes |
def test_rank_methods_series(self): pytest.importorskip('scipy.stats.special') rankdata = pytest.importorskip('scipy.stats.rankdata') import scipy xs = np.random.randn(9) xs = np.concatenate([xs[i:] for i in range(0, 9, 2)]) # add duplicates np.random.shuffle(xs) index = [chr(ord('a') + i) for i in range(len(xs))] for vals in [xs, xs + 1e6, xs * 1e-6]: ts = Series(vals, index=index) for m in ['average', 'min', 'max', 'first', 'dense']: result = ts.rank(method=m) sprank = rankdata(vals, m if m != 'first' else 'ordinal') expected = Series(sprank, index=index) if LooseVersion(scipy.__version__) >= LooseVersion('0.17.0'): expected = expected.astype('float64') tm.assert_series_equal(result, expected)
Example #9
Source File: pytester.py From python-netsurv with MIT License | 6 votes |
def spawn(self, cmd, expect_timeout=10.0): """Run a command using pexpect. The pexpect child is returned. """ pexpect = pytest.importorskip("pexpect", "3.0") if hasattr(sys, "pypy_version_info") and "64" in platform.machine(): pytest.skip("pypy-64 bit not supported") if sys.platform.startswith("freebsd"): pytest.xfail("pexpect does not work reliably on freebsd") logfile = self.tmpdir.join("spawn.out").open("wb") # Do not load user config. env = os.environ.copy() env.update(self._env_run_update) child = pexpect.spawn(cmd, logfile=logfile, env=env) self.request.addfinalizer(logfile.close) child.timeout = expect_timeout return child
Example #10
Source File: test_basic.py From sentry-python with BSD 2-Clause "Simplified" License | 6 votes |
def test_rest_framework_basic( sentry_init, client, capture_events, capture_exceptions, ct, body, route ): pytest.importorskip("rest_framework") sentry_init(integrations=[DjangoIntegration()], send_default_pii=True) exceptions = capture_exceptions() events = capture_events() if ct == "application/json": client.post( reverse(route), data=json.dumps(body), content_type="application/json" ) elif ct == "application/x-www-form-urlencoded": client.post(reverse(route), data=body) else: assert False (error,) = exceptions assert isinstance(error, ZeroDivisionError) (event,) = events assert event["exception"]["values"][0]["mechanism"]["type"] == "django" assert event["request"]["data"] == body assert event["request"]["headers"]["Content-Type"] == ct
Example #11
Source File: test_resample.py From vnpy_crypto with MIT License | 6 votes |
def test_resample_dtype_coerceion(self): pytest.importorskip('scipy.interpolate') # GH 16361 df = {"a": [1, 3, 1, 4]} df = DataFrame(df, index=pd.date_range("2017-01-01", "2017-01-04")) expected = (df.astype("float64") .resample("H") .mean() ["a"] .interpolate("cubic") ) result = df.resample("H")["a"].mean().interpolate("cubic") tm.assert_series_equal(result, expected) result = df.resample("H").mean()["a"].interpolate("cubic") tm.assert_series_equal(result, expected)
Example #12
Source File: test_rank.py From recruit with Apache License 2.0 | 6 votes |
def test_rank_methods_frame(self): pytest.importorskip('scipy.stats.special') rankdata = pytest.importorskip('scipy.stats.rankdata') import scipy xs = np.random.randint(0, 21, (100, 26)) xs = (xs - 10.0) / 10.0 cols = [chr(ord('z') - i) for i in range(xs.shape[1])] for vals in [xs, xs + 1e6, xs * 1e-6]: df = DataFrame(vals, columns=cols) for ax in [0, 1]: for m in ['average', 'min', 'max', 'first', 'dense']: result = df.rank(axis=ax, method=m) sprank = np.apply_along_axis( rankdata, ax, vals, m if m != 'first' else 'ordinal') sprank = sprank.astype(np.float64) expected = DataFrame(sprank, columns=cols) if (LooseVersion(scipy.__version__) >= LooseVersion('0.17.0')): expected = expected.astype('float64') tm.assert_frame_equal(result, expected)
Example #13
Source File: test_network.py From recruit with Apache License 2.0 | 6 votes |
def test_parse_public_s3_bucket(self, tips_df): pytest.importorskip('s3fs') # more of an integration test due to the not-public contents portion # can probably mock this though. for ext, comp in [('', None), ('.gz', 'gzip'), ('.bz2', 'bz2')]: df = read_csv('s3://pandas-test/tips.csv' + ext, compression=comp) assert isinstance(df, DataFrame) assert not df.empty tm.assert_frame_equal(df, tips_df) # Read public file from bucket with not-public contents df = read_csv('s3://cant_get_it/tips.csv') assert isinstance(df, DataFrame) assert not df.empty tm.assert_frame_equal(df, tips_df)
Example #14
Source File: test_python_parser_only.py From recruit with Apache License 2.0 | 6 votes |
def test_decompression_regex_sep(python_parser_only, csv1, compression, klass): # see gh-6607 parser = python_parser_only with open(csv1, "rb") as f: data = f.read() data = data.replace(b",", b"::") expected = parser.read_csv(csv1) module = pytest.importorskip(compression) klass = getattr(module, klass) with tm.ensure_clean() as path: tmp = klass(path, mode="wb") tmp.write(data) tmp.close() result = parser.read_csv(path, sep="::", compression=compression) tm.assert_frame_equal(result, expected)
Example #15
Source File: test_converter.py From vnpy_crypto with MIT License | 5 votes |
def test_registering_no_warning(self): plt = pytest.importorskip("matplotlib.pyplot") s = Series(range(12), index=date_range('2017', periods=12)) _, ax = plt.subplots() # Set to the "warn" state, in case this isn't the first test run converter._WARN = True register_matplotlib_converters() with tm.assert_produces_warning(None) as w: ax.plot(s.index, s.values) assert len(w) == 0
Example #16
Source File: test_basic.py From sentry-python with BSD 2-Clause "Simplified" License | 5 votes |
def test_does_not_capture_403(sentry_init, client, capture_events, endpoint): if endpoint == "rest_permission_denied_exc": pytest.importorskip("rest_framework") sentry_init(integrations=[DjangoIntegration()]) events = capture_events() _content, status, _headers = client.get(reverse(endpoint)) assert status.lower() == "403 forbidden" assert not events
Example #17
Source File: conftest.py From vnpy_crypto with MIT License | 5 votes |
def ip(): """ Get an instance of IPython.InteractiveShell. Will raise a skip if IPython is not installed. """ pytest.importorskip('IPython', minversion="6.0.0") from IPython.core.interactiveshell import InteractiveShell return InteractiveShell()
Example #18
Source File: test_optional.py From sacred with MIT License | 5 votes |
def test_module_exists_for_tensorflow(): """Check that module_exist returns true if tf is there.""" pytest.importorskip("tensorflow") assert modules_exist("tensorflow")
Example #19
Source File: test_compression.py From filesystem_spec with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_lz4_compression(tmpdir): """Infer lz4 compression for .lz4 files if lz4 is available.""" tmp_path = pathlib.Path(str(tmpdir)) lz4 = pytest.importorskip("lz4") tmp_path.mkdir(exist_ok=True) tdat = "foobar" * 100 with fsspec.core.open( str(tmp_path / "out.lz4"), mode="wt", compression="infer" ) as outfile: outfile.write(tdat) compressed = (tmp_path / "out.lz4").open("rb").read() assert lz4.frame.decompress(compressed).decode() == tdat with fsspec.core.open( str(tmp_path / "out.lz4"), mode="rt", compression="infer" ) as infile: assert infile.read() == tdat with fsspec.core.open( str(tmp_path / "out.lz4"), mode="rt", compression="lz4" ) as infile: assert infile.read() == tdat
Example #20
Source File: test_optional.py From sacred with MIT License | 5 votes |
def test_get_tensorflow(): """Test that get_tensorflow() runs without error.""" pytest.importorskip("tensorflow") get_tensorflow()
Example #21
Source File: test_base.py From vnpy_crypto with MIT License | 5 votes |
def test_tab_complete_warning(self, ip): # https://github.com/pandas-dev/pandas/issues/16409 pytest.importorskip('IPython', minversion="6.0.0") from IPython.core.completer import provisionalcompleter code = "import pandas as pd; idx = pd.Index([1, 2])" ip.run_code(code) with tm.assert_produces_warning(None): with provisionalcompleter('ignore'): list(ip.Completer.completions('idx.', 4))
Example #22
Source File: test_plotting.py From pygbm with MIT License | 5 votes |
def test_plot_estimator(tmpdir): pytest.importorskip('graphviz') from pygbm.plotting import plot_tree n_trees = 3 est = GradientBoostingRegressor(max_iter=n_trees) est.fit(X, y) for i in range(n_trees): filename = tmpdir.join('plot_predictor.pdf') plot_tree(est, tree_index=i, view=False, filename=filename) assert filename.exists()
Example #23
Source File: test_plotting.py From pygbm with MIT License | 5 votes |
def test_plot_grower(tmpdir): pytest.importorskip('graphviz') from pygbm.plotting import plot_tree X_binned = BinMapper().fit_transform(X) gradients = np.asarray(y, dtype=np.float32).copy() hessians = np.ones(1, dtype=np.float32) grower = TreeGrower(X_binned, gradients, hessians, max_leaf_nodes=5) grower.grow() filename = tmpdir.join('plot_grower.pdf') plot_tree(grower, view=False, filename=filename) assert filename.exists()
Example #24
Source File: testing.py From recruit with Apache License 2.0 | 5 votes |
def round_trip_localpath(writer, reader, path=None): """ Write an object to file specified by a py.path LocalPath and read it back Parameters ---------- writer : callable bound to pandas object IO writing function (e.g. DataFrame.to_csv ) reader : callable IO reading function (e.g. pd.read_csv ) path : str, default None The path where the object is written and then read. Returns ------- round_trip_object : pandas object The original object that was serialized and then re-read. """ import pytest LocalPath = pytest.importorskip('py.path').local if path is None: path = '___localpath___' with ensure_clean(path) as path: writer(LocalPath(path)) obj = reader(LocalPath(path)) return obj
Example #25
Source File: testing.py From recruit with Apache License 2.0 | 5 votes |
def round_trip_pathlib(writer, reader, path=None): """ Write an object to file specified by a pathlib.Path and read it back Parameters ---------- writer : callable bound to pandas object IO writing function (e.g. DataFrame.to_csv ) reader : callable IO reading function (e.g. pd.read_csv ) path : str, default None The path where the object is written and then read. Returns ------- round_trip_object : pandas object The original object that was serialized and then re-read. """ import pytest Path = pytest.importorskip('pathlib').Path if path is None: path = '___pathlib___' with ensure_clean(path) as path: writer(Path(path)) obj = reader(Path(path)) return obj
Example #26
Source File: test_parquet.py From recruit with Apache License 2.0 | 5 votes |
def test_compression(self, engine, compression): if compression == 'snappy': pytest.importorskip('snappy') elif compression == 'brotli': pytest.importorskip('brotli') df = pd.DataFrame({'A': [1, 2, 3]}) check_round_trip(df, engine, write_kwargs={'compression': compression})
Example #27
Source File: test_common.py From recruit with Apache License 2.0 | 5 votes |
def test_read_fspath_all(self, reader, module, path, datapath): pytest.importorskip(module) path = datapath(*path) mypath = CustomFSPath(path) result = reader(mypath) expected = reader(path) if path.endswith('.pickle'): # categorical tm.assert_categorical_equal(result, expected) else: tm.assert_frame_equal(result, expected)
Example #28
Source File: test_common.py From recruit with Apache License 2.0 | 5 votes |
def test_read_non_existant(self, reader, module, error_class, fn_ext): pytest.importorskip(module) path = os.path.join(HERE, 'data', 'does_not_exist.' + fn_ext) msg1 = (r"File (b')?.+does_not_exist\.{}'? does not exist" .format(fn_ext)) msg2 = (r"\[Errno 2\] No such file or directory: '.+does_not_exist" r"\.{}'").format(fn_ext) msg3 = "Expected object or value" msg4 = "path_or_buf needs to be a string file path or file-like" msg5 = (r"\[Errno 2\] File .+does_not_exist\.{} does not exist:" r" '.+does_not_exist\.{}'").format(fn_ext, fn_ext) with pytest.raises(error_class, match=r"({}|{}|{}|{}|{})".format( msg1, msg2, msg3, msg4, msg5)): reader(path)
Example #29
Source File: test_sql.py From recruit with Apache License 2.0 | 5 votes |
def setup_method(self, request, datapath): pymysql = pytest.importorskip('pymysql') pymysql.connect(host='localhost', user='root', passwd='', db='pandas_nosetest') try: pymysql.connect(read_default_group='pandas') except pymysql.ProgrammingError: raise RuntimeError( "Create a group of connection parameters under the heading " "[pandas] in your system's mysql default file, " "typically located at ~/.my.cnf or /etc/.my.cnf.") except pymysql.Error: raise RuntimeError( "Cannot connect to database. " "Create a group of connection parameters under the heading " "[pandas] in your system's mysql default file, " "typically located at ~/.my.cnf or /etc/.my.cnf.") self.method = request.function
Example #30
Source File: test_sql.py From recruit with Apache License 2.0 | 5 votes |
def setup_driver(cls): pytest.importorskip('psycopg2') cls.driver = 'psycopg2'