Exemple #1
0
    def test_database_merge_with_same_database_configured(self):
        """test with same database version already configured"""
        base = {
            "postgresql": [{
                "release":
                "9.6",
                "databases": [{
                    "application": "edxapp",
                    "name": "d_eugene_edxapp",
                    "password": "******",
                    "user": "******",
                }],
            }]
        }
        database = {"engine": "postgresql", "release": "9.6"}
        expected = {
            "postgresql": [{
                "release":
                "9.6",
                "databases": [{
                    "application": "edxapp",
                    "name": "d_eugene_edxapp",
                    "password": "******",
                    "user": "******",
                }],
            }]
        }

        self.assertEqual(
            merge_with_database(base, database, "edxapp", "eugene", {
                "name": "development",
                "code": "d"
            }),
            expected,
        )
Exemple #2
0
    def test_database_merge_with_no_existing_databases(self,
                                                       random_password_mock):
        """Test when no database is already configured"""

        base = {}
        database = {"engine": "mongodb", "release": "3.2"}
        expected = {
            "mongodb": [{
                "release":
                "3.2",
                "databases": [{
                    "application": "edxapp",
                    "name": "d_eugene_edxapp",
                    "password": "******",
                    "user": "******",
                }],
            }]
        }

        self.assertEqual(
            merge_with_database(base, database, "edxapp", "eugene", {
                "name": "development",
                "code": "d"
            }),
            expected,
        )
Exemple #3
0
    def test_database_merge_with_existing_databases_different(
        self, random_password_mock
    ):
        """Test with databases already configured but not the same one"""

        base = {
            "postgresql": [
                {
                    "release": "9.6",
                    "databases": [
                        {
                            "application": "edxapp",
                            "name": "d_eugene_edxapp",
                            "password": "******",
                            "user": "******",
                        }
                    ],
                }
            ]
        }
        database = {"engine": "mongodb", "release": "3.2"}
        expected = {
            "postgresql": [
                {
                    "release": "9.6",
                    "databases": [
                        {
                            "application": "edxapp",
                            "name": "d_eugene_edxapp",
                            "password": "******",
                            "user": "******",
                        }
                    ],
                }
            ],
            "mongodb": [
                {
                    "release": "3.2",
                    "databases": [
                        {
                            "application": "edxapp",
                            "name": "d_eugene_edxapp",
                            "password": "******",
                            "user": "******",
                        }
                    ],
                }
            ],
        }

        self.assertEqual(
            merge_with_database(
                base, database, "edxapp", "eugene", {"name": "development", "code": "d"}
            ),
            expected,
        )
Exemple #4
0
    def test_database_merge_with_same_database_and_different_release(
        self, random_password_mock
    ):
        """Test with an existing engine configured but not the same release"""

        base = {
            "postgresql": [
                {
                    "release": "9.6",
                    "databases": [
                        {
                            "application": "edxapp",
                            "name": "d_eugene_edxapp",
                            "password": "******",
                            "user": "******",
                        }
                    ],
                }
            ]
        }
        database = {"engine": "postgresql", "release": "10.0"}
        expected = {
            "postgresql": [
                {
                    "release": "9.6",
                    "databases": [
                        {
                            "application": "edxapp",
                            "name": "d_eugene_edxapp",
                            "password": "******",
                            "user": "******",
                        }
                    ],
                },
                {
                    "release": "10.0",
                    "databases": [
                        {
                            "application": "edxapp",
                            "name": "d_eugene_edxapp",
                            "password": "******",
                            "user": "******",
                        }
                    ],
                },
            ]
        }

        self.assertEqual(
            merge_with_database(
                base, database, "edxapp", "eugene", {"name": "development", "code": "d"}
            ),
            expected,
        )
Exemple #5
0
    def test_database_merge_with_other_environments(self,
                                                    random_password_mock):
        """Merge database in production various environments"""

        environments = (
            # (environment, env_code) environment and its first letter as environment code
            ("production", "p"),
            ("staging", "s"),
            ("development", "d"),
            ("preprod", "t"),
            ("ci", "c"),
            ("feature", "f"),
            ("random", "a"),
        )

        for environment, env_code in environments:
            base = {}
            database = {"engine": "postgresql", "release": "10.0"}
            expected = {
                "postgresql": [{
                    "release":
                    "10.0",
                    "databases": [{
                        "application": "edxapp",
                        "name": env_code + "_eugene_edxapp",
                        "password": "******",
                        "user": env_code + "_eugene_edxapp",
                    }],
                }]
            }

            self.assertEqual(
                merge_with_database(
                    base,
                    database,
                    "edxapp",
                    "eugene",
                    {
                        "name": environment,
                        "code": env_code
                    },
                ),
                expected,
            )