Cannot unit test the uniqueness constraint in share and group types models

Bug #1843498 reported by Goutham Pacha Ravi
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Shared File Systems Service (Manila)
Triaged
Low
Unassigned

Bug Description

This bug is a result of the code review iterations on https://review.opendev.org/#/c/669651/.

There was a unit test added to check that, when a share type with name "ABC" exists, another share type's name cannot be updated to be "ABC". This collision in names is guarded by uniqueness constraints in the "share_types" and "share_group_types" tables [1][2][3][4].

However, unit tests run on Sqlite, and this constraint isn't holding.

The unit test that failed: https://review.opendev.org/#/c/669651/27/manila/tests/db/sqlalchemy/test_api.py@3278

 manila/tests/db/sqlalchemy/test_api.py

     def test_share_type_update_name_exist(self):
        db_utils.create_share_type(
            name='exist_name', extra_specs={'somekey': 'someval'})
        share_type = db_utils.create_share_type(name='regalia')
        values = {"name": "exist_name"}
        self.assertRaises(exception.ShareTypeExists,
                          db_api.share_type_update,
                          self.ctxt, share_type['id'], values)

Failure observed in the unit tests:

    Captured traceback:
    ~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "manila/tests/db/sqlalchemy/test_api.py", line 3285, in test_share_type_update_name_exist
        self.ctxt, share_type['id'], values)
      File "/home/zuul/src/opendev.org/openstack/manila/.tox/py27/local/lib/python2.7/site-packages/testtools/testcase.py", line 485, in assertRaises
        self.assertThat(our_callable, matcher)
      File "/home/zuul/src/opendev.org/openstack/manila/.tox/py27/local/lib/python2.7/site-packages/testtools/testcase.py", line 498, in assertThat
        raise mismatch_error
    testtools.matchers._impl.MismatchError: <function share_type_update at 0x7f8d9c0fd938> returned None

[1] https://opendev.org/openstack/manila/src/branch/master/manila/db/migrations/alembic/versions/162a3e673105_manila_init.py#L367
[2] https://opendev.org/openstack/manila/src/branch/master/manila/db/migrations/alembic/versions/38e632621e5a_change_volume_type_to_share_type.py#L47
[3] https://opendev.org/openstack/manila/src/commit/f1e10ec2ff44445a7a6e10eba3f270e1dbd3a889/manila/db/migrations/alembic/versions/e1949a93157a_add_share_group_types_table.py#L49-L51
[4] https://opendev.org/openstack/manila/src/commit/f1e10ec2ff44445a7a6e10eba3f270e1dbd3a889/manila/db/sqlalchemy/models.py#L1068-L1070

tags: added: low-hanging-fruit tests unit
Changed in manila:
importance: Undecided → Low
description: updated
tags: removed: low-hanging-fruit unit
Vida Haririan (vhariria)
Changed in manila:
status: New → Triaged
Vida Haririan (vhariria)
tags: added: low-hanging-fruit
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.