import io import unittest from unittest.mock import patch from pylorax import buildstamp class BuildStampTestCase(unittest.TestCase): def setUp(self): self.bstamp = buildstamp.BuildStamp( 'Lorax Tests', '0.1', 'https://github.com/rhinstaller/lorax/issues', True, 'noarch', 'Server' ) def test_write_produces_file_with_expected_content(self): out_file = io.StringIO() with patch.object(out_file, 'close'): with patch.object(buildstamp, 'open', return_value=out_file): self.bstamp.write('/tmp/stamp.ini') self.assertIn("[Main]\nProduct=Lorax Tests\nVersion=0.1\nBugURL=https://github.com/rhinstaller/lorax/issues\nIsFinal=True\n", out_file.getvalue()) # Skip UUID which is between IsFinal and Variant try: import pylorax.version except ImportError: self.assertIn("Variant=Server\n[Compose]\nLorax=devel", out_file.getvalue()) else: self.assertIn("Variant=Server\n[Compose]\nLorax=" + pylorax.version.num, out_file.getvalue())