from unittest import TestCase

from pcs_test.tools.misc import outdent


class OutdentTest(TestCase):
    def test_returns_the_same_text_when_not_indented(self):
        text = "\n".join(
            [
                "first line",
                "  second line",
                "    third line",
            ]
        )
        self.assertEqual(text, outdent(text))

    def test_remove_the_smallest_indentation(self):
        self.assertEqual(
            "\n".join(
                [
                    "  first line",
                    "second line",
                    "  third line",
                ]
            ),
            outdent(
                "\n".join(
                    [
                        "    first line",
                        "  second line",
                        "    third line",
                    ]
                )
            ),
        )

    def test_very_ugly_indented_text(self):
        self.assertEqual(
            """\
Cluster Name: test99
  Options:
""",
            outdent(
                """\
                Cluster Name: test99
                  Options:
                """
            ),
        )
