diff --git a/ecs/crm-datafetch/tests/writer/test_file_writer.py b/ecs/crm-datafetch/tests/writer/test_file_writer.py index 6097d54b..cb6e748b 100644 --- a/ecs/crm-datafetch/tests/writer/test_file_writer.py +++ b/ecs/crm-datafetch/tests/writer/test_file_writer.py @@ -2,7 +2,35 @@ import os import textwrap import pytest -from src.writer.file_writer import CsvWriter, JsonWriter +from src.writer.file_writer import CsvWriter, FileWriter, JsonWriter + + +class ConcreteFileWriter(FileWriter): + def write(self) -> str: + return super().write() + + +class ConcreteFileWriterAbstractMethodNotImplemented(FileWriter): + pass + + +class TestFileWriter: + + def test_concrete_file_writer_instance_create(self): + concrete_file_writer = ConcreteFileWriter('', '') + assert isinstance(concrete_file_writer, FileWriter) + + def test_concrete_file_writer_call_write_method(self): + concrete_file_writer = ConcreteFileWriter('', '') + concrete_file_writer.write() + + def test_raise_abstract_class_do_not_create_instance(self): + with pytest.raises(TypeError): + FileWriter('', '') + + def test_raise_concrete_file_writer_not_implemented_abstract_method(self): + with pytest.raises(TypeError): + ConcreteFileWriterAbstractMethodNotImplemented('', '') class TestJsonFileWriter: