import my_functions
import unittest
from io import StringIO
from unittest.mock import patch

class TestFunc(unittest.TestCase):

    def test_add(self):
        self.assertEqual(my_functions.add(2, 4), 6)
        self.assertNotEqual(my_functions.add(2, 4), 7)

    def test_palindrom(self):
        self.assertTrue(my_functions.is_palindrom('ala'))
        self.assertFalse(my_functions.is_palindrom('alak'))

    @patch('sys.stdout', new_callable=StringIO)
    def test_is_valid_triangle(self, mock_stdout):
        my_functions.is_valid_tringle(2, 3, 4)
        self.assertEqual(mock_stdout.getvalue(), "Można utworzyć trójkąt\n")

    @patch('sys.stdout', new_callable=StringIO)
    def test_is_valid_triangle(self, mock_stdout):
        my_functions.is_valid_tringle(2, 2, 4)
        self.assertEqual(mock_stdout.getvalue(), "Nie można utworzyć trójkąta\n")

if __name__ == '__main__':
    unittest.main()