35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
|
from io import StringIO
|
||
|
|
||
|
import pytest
|
||
|
|
||
|
from pandas import read_sas
|
||
|
import pandas._testing as tm
|
||
|
|
||
|
|
||
|
class TestSas:
|
||
|
def test_sas_buffer_format(self):
|
||
|
# see gh-14947
|
||
|
b = StringIO("")
|
||
|
|
||
|
msg = (
|
||
|
"If this is a buffer object rather than a string "
|
||
|
"name, you must specify a format string"
|
||
|
)
|
||
|
with pytest.raises(ValueError, match=msg):
|
||
|
read_sas(b)
|
||
|
|
||
|
def test_sas_read_no_format_or_extension(self):
|
||
|
# see gh-24548
|
||
|
msg = "unable to infer format of SAS file.+"
|
||
|
with tm.ensure_clean("test_file_no_extension") as path:
|
||
|
with pytest.raises(ValueError, match=msg):
|
||
|
read_sas(path)
|
||
|
|
||
|
|
||
|
def test_sas_archive(datapath):
|
||
|
fname_uncompressed = datapath("io", "sas", "data", "airline.sas7bdat")
|
||
|
df_uncompressed = read_sas(fname_uncompressed)
|
||
|
fname_compressed = datapath("io", "sas", "data", "airline.sas7bdat.gz")
|
||
|
df_compressed = read_sas(fname_compressed, format="sas7bdat")
|
||
|
tm.assert_frame_equal(df_uncompressed, df_compressed)
|