# Path: tests/conftest.py
# REASON_NOT_IMPLEMENTED = '' \
#     'Test case is not yet implemented, but a note of the requirement was made.'


import pytest
from tests.conftest import REASON_NOT_IMPLEMENTED
            from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display
    def test_list_supported_modes(self, monkeypatch, edid, fs):
        """
        Tests that the list_supported_modes function returns the expected values.

        Args:
            monkeypatch - pytest fixture which gives mocking functionality
            edid - parameterised fixture containing raw, rpi_dumps, expected test data
        """


        # get_supported_modes will bail if it can't find the tvservice executable
        fs.CreateFile(display.tvservice_path)

        # Mock the subprocess function to return the dumps for the CEA or DMT modes.
        monkeypatch.setattr(
            display.subprocess, 'check_output',
            lambda x: edid['rpi_dumps']['cea_modes'] if 'CEA' in x else edid['rpi_dumps']['dmt_modes']
        )
        rv = display.list_supported_modes(min_width=0, min_height=0, use_cached=False)

        assert(rv == edid['expected']['cea_modes'] + edid['expected']['dmt_modes'])

    @pytest.mark.skip(REASON_NOT_IMPLEMENTED)
    def test_list_supported_modes_filtering(self):
        """
        Tests that the list_supported_modes function returns modes filtered with
        minimum width and height.
        """
        pass  # TODO: Implement this test.


# Path: tests/conftest.py
# REASON_NOT_IMPLEMENTED = '' \
#     'Test case is not yet implemented, but a note of the requirement was made.'


# Path: tests/kano_settings_pkg/system/test_display.py
import pytest
from tests.conftest import REASON_NOT_IMPLEMENTED
            from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display
        from kano_settings.system import display

    def test_list_supported_modes(self, monkeypatch, edid, fs):
        """
        Tests that the list_supported_modes function returns the expected values.

        Args:
            monkeypatch - pytest fixture which gives mocking functionality
            edid - parameterised fixture containing raw, rpi_dumps, expected test data
        """


        # get_supported_modes will bail if it can't find the tvservice executable
        fs.CreateFile(display.tvservice_path)

        # Mock the subprocess function to return the dumps for the CEA or DMT modes.
        monkeypatch.setattr(
            display.subprocess, 'check_output',
            lambda x: edid['rpi_dumps']['cea_modes'] if 'CEA' in x else edid['rpi_dumps']['dmt_modes']
        )
        rv = display.list_supported_modes(min_width=0, min_height=0, use_cached=False)

        assert(rv == edid['expected']['cea_modes'] + edid['expected']['dmt_modes'])

    @pytest.mark.skip(REASON_NOT_IMPLEMENTED)
    def test_list_supported_modes_filtering(self):
        """
        Tests that the list_supported_modes function returns modes filtered with
        minimum width and height.
        """
        pass  # TODO: Implement this test.


    @pytest.mark.skip(REASON_NOT_IMPLEMENTED)