From 0c0c919044514df8195fbbf56fc8ffc6c3b5ceb0 Mon Sep 17 00:00:00 2001 From: Sergey Kraynev Date: Tue, 31 Mar 2015 10:02:01 -0400 Subject: [PATCH] Re-factor db sqlalchemy tests Heat repository already contains sub-directory tests/db/. In this patch we move all related with db sqlalchemy tests to mentioned sub-directory. Also was removed redundant copy of file heat/tests/test_sqlalchemy_types.py. Code from this file was migrated to heat/tests/db/test_sqlalchemy_types.py file. Change-Id: I337eeedc079e1146958ec3b4b1956d76ce7fc352 --- heat/tests/{ => db}/test_sqlalchemy_api.py | 0 .../tests/{ => db}/test_sqlalchemy_filters.py | 0 heat/tests/db/test_sqlalchemy_types.py | 46 +++++++++++++ heat/tests/test_sqlalchemy_types.py | 65 ------------------- 4 files changed, 46 insertions(+), 65 deletions(-) rename heat/tests/{ => db}/test_sqlalchemy_api.py (100%) rename heat/tests/{ => db}/test_sqlalchemy_filters.py (100%) delete mode 100644 heat/tests/test_sqlalchemy_types.py diff --git a/heat/tests/test_sqlalchemy_api.py b/heat/tests/db/test_sqlalchemy_api.py similarity index 100% rename from heat/tests/test_sqlalchemy_api.py rename to heat/tests/db/test_sqlalchemy_api.py diff --git a/heat/tests/test_sqlalchemy_filters.py b/heat/tests/db/test_sqlalchemy_filters.py similarity index 100% rename from heat/tests/test_sqlalchemy_filters.py rename to heat/tests/db/test_sqlalchemy_filters.py diff --git a/heat/tests/db/test_sqlalchemy_types.py b/heat/tests/db/test_sqlalchemy_types.py index 6802050a4e..47b460a555 100644 --- a/heat/tests/db/test_sqlalchemy_types.py +++ b/heat/tests/db/test_sqlalchemy_types.py @@ -19,6 +19,52 @@ from heat.db.sqlalchemy import types as db_types from heat.tests import common +class LongTextTest(common.HeatTestCase): + + def setUp(self): + super(LongTextTest, self).setUp() + self.sqltype = db_types.LongText() + + def test_load_dialect_impl(self): + dialect = mysql_base.MySQLDialect() + impl = self.sqltype.load_dialect_impl(dialect) + self.assertNotEqual(types.Text, type(impl)) + dialect = sqlite_base.SQLiteDialect() + impl = self.sqltype.load_dialect_impl(dialect) + self.assertEqual(types.Text, type(impl)) + + +class JsonTest(common.HeatTestCase): + + def setUp(self): + super(JsonTest, self).setUp() + self.sqltype = db_types.Json() + + def test_process_bind_param(self): + dialect = None + value = {'foo': 'bar'} + result = self.sqltype.process_bind_param(value, dialect) + self.assertEqual('{"foo": "bar"}', result) + + def test_process_bind_param_null(self): + dialect = None + value = None + result = self.sqltype.process_bind_param(value, dialect) + self.assertEqual('null', result) + + def test_process_result_value(self): + dialect = None + value = '{"foo": "bar"}' + result = self.sqltype.process_result_value(value, dialect) + self.assertEqual({'foo': 'bar'}, result) + + def test_process_result_value_null(self): + dialect = None + value = None + result = self.sqltype.process_result_value(value, dialect) + self.assertIsNone(result) + + class ListTest(common.HeatTestCase): def setUp(self): diff --git a/heat/tests/test_sqlalchemy_types.py b/heat/tests/test_sqlalchemy_types.py deleted file mode 100644 index 97921346ce..0000000000 --- a/heat/tests/test_sqlalchemy_types.py +++ /dev/null @@ -1,65 +0,0 @@ -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from sqlalchemy.dialects.mysql import base as mysql_base -from sqlalchemy.dialects.sqlite import base as sqlite_base -from sqlalchemy import types - -from heat.db.sqlalchemy import types as db_types -from heat.tests import common - - -class LongTextTest(common.HeatTestCase): - - def setUp(self): - super(LongTextTest, self).setUp() - self.sqltype = db_types.LongText() - - def test_load_dialect_impl(self): - dialect = mysql_base.MySQLDialect() - impl = self.sqltype.load_dialect_impl(dialect) - self.assertNotEqual(types.Text, type(impl)) - dialect = sqlite_base.SQLiteDialect() - impl = self.sqltype.load_dialect_impl(dialect) - self.assertEqual(types.Text, type(impl)) - - -class JsonTest(common.HeatTestCase): - - def setUp(self): - super(JsonTest, self).setUp() - self.sqltype = db_types.Json() - - def test_process_bind_param(self): - dialect = None - value = {'foo': 'bar'} - result = self.sqltype.process_bind_param(value, dialect) - self.assertEqual('{"foo": "bar"}', result) - - def test_process_bind_param_null(self): - dialect = None - value = None - result = self.sqltype.process_bind_param(value, dialect) - self.assertEqual('null', result) - - def test_process_result_value(self): - dialect = None - value = '{"foo": "bar"}' - result = self.sqltype.process_result_value(value, dialect) - self.assertEqual({'foo': 'bar'}, result) - - def test_process_result_value_null(self): - dialect = None - value = None - result = self.sqltype.process_result_value(value, dialect) - self.assertIsNone(result)