Files
2025-05-20 09:24:29 -04:00

70 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
"""Test dbtoyaml and yamltodb using autodoc schema
See http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/~checkout~/autodoc/autodoc/
regressdatabase.sql?rev=1.2
"""
from pyrseas.testutils import DbMigrateTestCase
class AutodocTestCase(DbMigrateTestCase):
def setUp(self):
super(DbMigrateTestCase, self).setUp()
self.add_public_schema(self.srcdb)
self.add_public_schema(self.db)
@classmethod
def tearDown(cls):
cls.remove_tempfiles('autodoc')
cls.remove_tempfiles('empty')
def test_autodoc(self):
# Create the source schema
self.execute_script(__file__, 'autodoc-schema.sql')
# Run pg_dump against source database
srcdump = self.tempfile_path('autodoc-src.dump')
self.run_pg_dump(srcdump, True)
# Create source YAML file
srcyaml = self.tempfile_path('autodoc-src.yaml')
self.create_yaml(srcyaml, True)
# Run pg_dump/dbtoyaml against empty target database
emptydump = self.tempfile_path('empty.dump')
self.run_pg_dump(emptydump)
emptyyaml = self.tempfile_path('empty.yaml')
self.create_yaml(emptyyaml)
# Migrate the target database
targsql = self.tempfile_path('autodoc.sql')
self.migrate_target(srcyaml, targsql)
# Run pg_dump against target database
targdump = self.tempfile_path('autodoc.dump')
self.run_pg_dump(targdump)
# Create target YAML file
targyaml = self.tempfile_path('autodoc.yaml')
self.create_yaml(targyaml)
# diff autodoc-src.dump against autodoc.dump
assert self.lines(srcdump) == self.lines(targdump)
# diff autodoc-src.yaml against autodoc.yaml
assert self.lines(srcyaml) == self.lines(targyaml)
# Undo the changes
self.migrate_target(emptyyaml, targsql)
# Run pg_dump against target database
self.run_pg_dump(targdump)
# Create target YAML file
self.create_yaml(targyaml)
# diff empty.dump against autodoc.dump
assert self.lines(emptydump) == self.lines(targdump)
# diff empty.yaml against autodoc.yaml
assert self.lines(emptyyaml) == self.lines(targyaml)