from pyexcel.source import AbstractSource
from pyexcel.plugins import FileSourceInfo
from pyexcel.plugins.sources.output_to_memory import WriteSheetToMemory
from nose.tools import raises
def test_source():
source = AbstractSource(source="asource", params="params")
info = source.get_source_info()
assert info, (None, None)
def test_source_class_method():
assert AbstractSource.is_my_business("read", source="asource") is True
assert AbstractSource.is_my_business("read", file_name="asource") is False
@raises(Exception)
def test_read_only_source():
source = AbstractSource()
source.write_data("something")
@raises(Exception)
def test_write_only_source():
source = AbstractSource()
source.get_data()
@raises(Exception)
def test_write_only_sheet_source():
source = WriteSheetToMemory()
source.get_data()
def test_file_source_info_with_file_type():
class CustomInfo(FileSourceInfo):
fields = ["test"]
def can_i_handle(self, action, file_type):
return file_type == "csv"
info = CustomInfo("apth")
expected = info.is_my_business(
"READ", test="unit", file_name="unknow.file", force_file_type="csv"
)
assert expected