Skip to content
This repository has been archived by the owner on Jan 28, 2021. It is now read-only.

Commit

Permalink
Merge pull request #69 from uw-it-aca/bug/281
Browse files Browse the repository at this point in the history
Fix sqlshr-281
  • Loading branch information
vegitron committed Aug 29, 2016
2 parents 416d3a1 + 877facf commit d42102d
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
2 changes: 2 additions & 0 deletions sqlshare_rest/dao/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,8 @@ def set_dataset_accounts(dataset, accounts, save_dataset=True):
if len(user_models) != len(accounts):
raise InvalidAccountException()

user_models = filter(lambda x: x.username != dataset.owner.username,
user_models)
query = get_preview_query(dataset)

# XXX - put this in a transaction?
Expand Down
28 changes: 28 additions & 0 deletions sqlshare_rest/test/dao/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
from sqlshare_rest.util.db import get_backend
from django.db import connection
from sqlshare_rest.dao.dataset import create_dataset_from_query
from sqlshare_rest.dao.dataset import set_dataset_accounts
from sqlshare_rest.models import User
from django.test.utils import override_settings
from sqlshare_rest.util.query_queue import process_queue
from sqlshare_rest.models import Query, Dataset
Expand Down Expand Up @@ -36,6 +38,32 @@ def test_preview(self):

self.assertEquals(m2.get_sample_data_status(), "success")

def test_no_share_to_owner(self):
owner = "dataset_dao_user3"
shared_to1 = "add_access1"
shared_to2 = "add_access2"
self.remove_users.append(owner)
self.remove_users.append(shared_to1)
self.remove_users.append(shared_to2)

backend = get_backend()
u1 = backend.get_user(shared_to1)
u2 = backend.get_user(shared_to2)
Query.objects.all().delete()
model = create_dataset_from_query(username=owner, dataset_name="test4", sql="SELECT (3)")

set_dataset_accounts(model, [shared_to1, owner, shared_to2])

m2 = Dataset.objects.get(pk=model.pk)

shared_to = m2.shared_with.all()

usernames = map(lambda x: x.username, shared_to)
self.assertTrue(shared_to1 in usernames)
self.assertTrue(shared_to2 in usernames)
self.assertEquals(len(shared_to), 2)


def setUp(self):
# Try to cleanup from any previous test runs...
self.remove_users = []
Expand Down

0 comments on commit d42102d

Please sign in to comment.