tree f53fc29a16b2fa202b4a022d0ec517acbb9673b0
parent 39ef895d112f947564d7ca52a73a5b2afb82f741
author Goutham Pacha Ravi <gouthampravi@gmail.com> 1584728027 -0700
committer Goutham Pacha Ravi <gouthampravi@gmail.com> 1584744432 -0700

Fix export locations tests

The tempest tests
- api.admin.test_export_locations.ExportLocationsTest#test_list_share_export_locations_by_member
- api.admin.test_export_locations.ExportLocationsTest#test_get_share_export_location_by_member

were both written with the assumption that a user within a
project creates a share, and the share's export locations
are available to other users in the project. In this specific
context, the user creating the share has an "admin" role -
but that is just circumstantial. Any user with the ability
to create shares in a project can do so, and expect that
those shares are accessible to other users by virtue of default
policy.

However, tempest test projects each have only one user,
and the private share in both these test cases is created
within the original user's project, and is not supposed to
be accessible across projects. This behavior is called out in
LP bug #1654598.

So, enhance the test infra to create a user within the same
project applying roles specified within tempest.conf and test
accessibility with such a user.

Once bug #1654598 has been resolved, we can use the existing
test behavior of testing access via a different project as
negative test cases (See: https://review.opendev.org/710661/)

Related-Bug: #1654598
Partial-Bug: #1655427
Change-Id: I12a1df36e8d928c54c03ed644dd60557f349ddb3
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
