Blob Blame Raw
# -*- coding: utf-8 -*-

"""
 (c) 2017 - Copyright Red Hat Inc

 Authors:
   Pierre-Yves Chibon <pingou@pingoured.fr>

"""

from __future__ import unicode_literals

import os
import subprocess
import unittest


REPO_PATH = os.path.abspath(
    os.path.join(os.path.dirname(__file__), '..'))


class TestAlembic(unittest.TestCase):
    """This test class contains tests pertaining to alembic."""

    def test_alembic_history(self):
        """Enforce a linear alembic history.

        This test runs the `alembic history | grep ' (head), '` command,
        and ensure it returns only one line.
        """

        proc1 = subprocess.Popen(
            ['alembic', 'history'],
            cwd=REPO_PATH, stdout=subprocess.PIPE)
        proc2 = subprocess.Popen(
            ['grep', ' (head), '],
            stdin=proc1.stdout, stdout=subprocess.PIPE)
        stdout = proc2.communicate()[0]
        stdout = stdout.strip().decode('utf-8').split('\n')

        self.assertEqual(len(stdout), 1)


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