import os
import unittest


pg_header = os.path.join('src_c', '_pygame.h')


class VersionTest(unittest.TestCase):
    @unittest.skipIf(not os.path.isfile(pg_header),
                     "Skipping because we cannot find _pygame.h")
    def test_pg_version_consistency(self):
        from pygame import version
        pgh_major = -1
        pgh_minor = -1
        pgh_patch = -1
        import re
        major_exp_search = re.compile('define\s+PG_MAJOR_VERSION\s+([0-9]+)').search
        minor_exp_search = re.compile('define\s+PG_MINOR_VERSION\s+([0-9]+)').search
        patch_exp_search = re.compile('define\s+PG_PATCH_VERSION\s+([0-9]+)').search
        with open(pg_header) as f:
            for line in f:
                if pgh_major == -1:
                    m = major_exp_search(line)
                    if m: pgh_major = int(m.group(1))
                if pgh_minor == -1:
                    m = minor_exp_search(line)
                    if m: pgh_minor = int(m.group(1))
                if pgh_patch == -1:
                    m = patch_exp_search(line)
                    if m: pgh_patch = int(m.group(1))
        self.assertEqual(pgh_major, version.vernum[0])
        self.assertEqual(pgh_minor, version.vernum[1])
        self.assertEqual(pgh_patch, version.vernum[2])

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