<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">import os
import unittest
from mm_stats.analysis.pop import pop_per_region_per_month, pop_utils, pop_per_region
from mm_stats.auth import PostgresDb


class TestSessionsToPsql(unittest.TestCase):
    """The Unittest Class."""

    def setUp(self):
        """Set up directory and tests schema in postgres."""
        self.test_dir = os.path.dirname(os.path.abspath(__file__))
        self.filter = "tests"

        # create tests schema in db if it does not exist
        db = PostgresDb()

        query = """
            CREATE SCHEMA IF NOT EXISTS tests;
        """
        db.query(query)

        self.table_names = ["pop_stats_per_country", "pop_stats_per_country_per_month"]

        self.result_table_names = [
            "pop_per_region_per_month",
            "pop_per_region",
        ]

        pop_utils.create_result_tables(self.filter)

        for table_name in self.table_names:
            query = f"""
                DROP TABLE IF EXISTS tests.{table_name};
                CREATE TABLE tests.{table_name} AS
                SELECT *
                FROM tdt.{table_name};
            """
            db.query(query)

    def tearDown(self):
        """Clean up and drop sessions table in postgres."""
        db = PostgresDb()

        for table_name in self.table_names:
            query = f"""
                DROP TABLE IF EXISTS tests.{table_name};
            """
            db.query(query)

        for table_name in self.result_table_names:
            query = f"""
                DROP TABLE IF EXISTS tests.{table_name};
            """
            db.query(query)

    def test_pop_stats_per_region(self):
        """Test if raster can be created."""
        # run
        pop_per_region.run(self.filter)

    def test_pop_stats_per_region_per_month(self):
        """Test if raster can be created."""
        # run
        pop_per_region_per_month.run(self.filter)


if __name__ == "__main__":
    unittest.main()
</pre></body></html>