¡@

Home 

OpenStack Study: test_sqlalchemy.py

OpenStack Index

**** CubicPower OpenStack Study ****

# Copyright 2012 OpenStack Foundation

# Copyright 2013 IBM Corp.

# All Rights Reserved.

#

# 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 glance.common import exception

import glance.db.sqlalchemy.api

from glance.db.sqlalchemy import models as db_models

import glance.tests.functional.db as db_tests

from glance.tests.functional.db import base

**** CubicPower OpenStack Study ****

def get_db(config):

    config(connection='sqlite://', group='database')

    config(verbose=False, debug=False)

    db_api = glance.db.sqlalchemy.api

    return db_api

**** CubicPower OpenStack Study ****

def reset_db(db_api):

    db_models.unregister_models(db_api.get_engine())

    db_models.register_models(db_api.get_engine())

**** CubicPower OpenStack Study ****

class TestSqlAlchemyDriver(base.TestDriver, base.DriverTests):

**** CubicPower OpenStack Study ****

    def setUp(self):

        db_tests.load(get_db, reset_db)

        super(TestSqlAlchemyDriver, self).setUp()

        self.addCleanup(db_tests.reset)

**** CubicPower OpenStack Study ****

    def test_get_image_with_invalid_long_image_id(self):

        image_id = '343f9ba5-0197-41be-9543-16bbb32e12aa-xxxxxx'

        self.assertRaises(exception.NotFound, self.db_api._image_get,

                          self.context, image_id)

**** CubicPower OpenStack Study ****

    def test_image_tag_delete_with_invalid_long_image_id(self):

        image_id = '343f9ba5-0197-41be-9543-16bbb32e12aa-xxxxxx'

        self.assertRaises(exception.NotFound, self.db_api.image_tag_delete,

                          self.context, image_id, 'fake')

**** CubicPower OpenStack Study ****

    def test_image_tag_get_all_with_invalid_long_image_id(self):

        image_id = '343f9ba5-0197-41be-9543-16bbb32e12aa-xxxxxx'

        self.assertRaises(exception.NotFound, self.db_api.image_tag_get_all,

                          self.context, image_id)

**** CubicPower OpenStack Study ****

    def test_user_get_storage_usage_with_invalid_long_image_id(self):

        image_id = '343f9ba5-0197-41be-9543-16bbb32e12aa-xxxxxx'

        self.assertRaises(exception.NotFound,

                          self.db_api.user_get_storage_usage,

                          self.context, 'fake_owner_id', image_id)

**** CubicPower OpenStack Study ****

class TestSqlAlchemyVisibility(base.TestVisibility, base.VisibilityTests):

**** CubicPower OpenStack Study ****

    def setUp(self):

        db_tests.load(get_db, reset_db)

        super(TestSqlAlchemyVisibility, self).setUp()

        self.addCleanup(db_tests.reset)

**** CubicPower OpenStack Study ****

class TestSqlAlchemyMembershipVisibility(base.TestMembershipVisibility, base.MembershipVisibilityTests):

**** CubicPower OpenStack Study ****

    def setUp(self):

        db_tests.load(get_db, reset_db)

        super(TestSqlAlchemyMembershipVisibility, self).setUp()

        self.addCleanup(db_tests.reset)

**** CubicPower OpenStack Study ****

class TestSqlAlchemyDBDataIntegrity(base.TestDriver):

"""Test class for checking the data integrity in the database.

Helpful in testing scenarios specific to the sqlalchemy api.

"""

**** CubicPower OpenStack Study ****

    def setUp(self):

        db_tests.load(get_db, reset_db)

        super(TestSqlAlchemyDBDataIntegrity, self).setUp()

        self.addCleanup(db_tests.reset)

**** CubicPower OpenStack Study ****

    def test_paginate_redundant_sort_keys(self):

        original_method = self.db_api._paginate_query

        def fake_paginate_query(query, model, limit,

                                sort_keys, marker, sort_dir):

            self.assertEqual(sort_keys, ['created_at', 'id'])

            return original_method(query, model, limit,

                                   sort_keys, marker, sort_dir)

        self.stubs.Set(self.db_api, '_paginate_query',

                       fake_paginate_query)

        self.db_api.image_get_all(self.context, sort_key='created_at')

**** CubicPower OpenStack Study ****

        def fake_paginate_query(query, model, limit,

                                sort_keys, marker, sort_dir):

            self.assertEqual(sort_keys, ['created_at', 'id'])

            return original_method(query, model, limit,

                                   sort_keys, marker, sort_dir)

        self.stubs.Set(self.db_api, '_paginate_query',

                       fake_paginate_query)

        self.db_api.image_get_all(self.context, sort_key='created_at')

**** CubicPower OpenStack Study ****

    def test_paginate_non_redundant_sort_keys(self):

        original_method = self.db_api._paginate_query

        def fake_paginate_query(query, model, limit,

                                sort_keys, marker, sort_dir):

            self.assertEqual(sort_keys, ['name', 'created_at', 'id'])

            return original_method(query, model, limit,

                                   sort_keys, marker, sort_dir)

        self.stubs.Set(self.db_api, '_paginate_query',

                       fake_paginate_query)

        self.db_api.image_get_all(self.context, sort_key='name')

**** CubicPower OpenStack Study ****

        def fake_paginate_query(query, model, limit,

                                sort_keys, marker, sort_dir):

            self.assertEqual(sort_keys, ['name', 'created_at', 'id'])

            return original_method(query, model, limit,

                                   sort_keys, marker, sort_dir)

        self.stubs.Set(self.db_api, '_paginate_query',

                       fake_paginate_query)

        self.db_api.image_get_all(self.context, sort_key='name')

**** CubicPower OpenStack Study ****

class TestSqlAlchemyTask(base.TaskTests):

**** CubicPower OpenStack Study ****

    def setUp(self):

        db_tests.load(get_db, reset_db)

        super(TestSqlAlchemyTask, self).setUp()

        self.addCleanup(db_tests.reset)

**** CubicPower OpenStack Study ****

class TestSqlAlchemyQuota(base.DriverQuotaTests):

**** CubicPower OpenStack Study ****

    def setUp(self):

        db_tests.load(get_db, reset_db)

        super(TestSqlAlchemyQuota, self).setUp()

        self.addCleanup(db_tests.reset)