import unittest
import parse

class TestParse(unittest.TestCase):
    def test_not_has_main(self):
        content = "a = 1\nb = 2"
        self.assertFalse(parse.parse_main(content))

    def test_has_main_in_function(self):
        content = """
def foo():
    if __name__ == "__main__":
        a = 3
"""
        self.assertFalse(parse.parse_main(content))

    def test_has_main(self):
        content = """
import unittest

from lib import main


class ExampleTest(unittest.TestCase):
    def test_main(self):
        self.assertEqual(
            "",
            main([["A", 1], ["B", 2]]),
        )


if __name__ == "__main__":
    unittest.main()
"""
        self.assertTrue(parse.parse_main(content))


if __name__ == "__main__":
    unittest.main()
