Skip to content

Commit

Permalink
Merge 8d8756c into 97c21fb
Browse files Browse the repository at this point in the history
  • Loading branch information
Scandie committed Jun 6, 2018
2 parents 97c21fb + 8d8756c commit c310b8f
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 6 deletions.
3 changes: 3 additions & 0 deletions openregistry/lots/loki/tests/app_meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
plugins:
api:
plugins:
transferring:
plugins:
lots.transferring:
lots.core:
plugins:
lots.loki:
Expand Down
12 changes: 6 additions & 6 deletions openregistry/lots/loki/tests/auth.ini
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ chrisr = eff96da2ba7c017cdab58026babb8fe59e5cc2b0e379134566585b323f6af4dddd0bbce
;broker2t = broker2t,2t
broker = 8aafad1c60719fe21144b71a79e86d9cfb254ace1fb1de2041551c2867111d9908ac59d5cd7c62d34e4a76bcee474719dabb8c5c97135016c0d9a6db179f8206
broker05 = b51efde2ca76f9e1b0581b715a520288ffdfd10e8e0cbe630411c0bf7af5a3e828c9df00526b028e1898114697fe0866ade662564d8f3fdf66d3e6d0ac824c23
broker1 = c581183e1dc4781da9cee87c62cda07234eeae7fd9e225ca75f514d833730b833f0bb38119da1550ff59f879ae57b63afbc9bd1d1ebef04707eefc38059aa18c
broker2 = 9cfef56db1e21fbe5901ea18a1cfe8ab4a31afe9b8d4d70952b7c914aaeeca547bc423fa76b3f3ca5cedea0397c8cfbfd23dccf0ceac494f3e43a26d053eb7eb
broker3 = 4a2a3fd8e70e544beec364604b717bfdb71672cc136671a1e391526cb94aa5c24d016296d79e201e0a1baf1e77e7089616b547e08e568816f0a6d9dd706fa96c
broker4 = 063864e893f906024a7bdceb30e117eed648b744b213bc35e4d184c6681db233a6ab772af0570a9aaaf650a641ca671d95cb2dfd2e2b32e1bd7eec8b0a32ce8b
broker1t = 9bae6afc85e26bc0c60467b72cf328cd753454f4cfec6c5c0955a91740165fa55c1ef110187bbb31af090deff86b2c174cd1e643c14eedb085891599089f9abc
broker2t = 7695927317b0fed2a1c2b9da7dcf741a170380bcbf9d1ce8a3c4973d70090ffb43276b9c95ba96839e9b5e9646943dba210379b1b3d63ea69e1cae7c966e3b6a
broker1 = c581183e1dc4781da9cee87c62cda07234eeae7fd9e225ca75f514d833730b833f0bb38119da1550ff59f879ae57b63afbc9bd1d1ebef04707eefc38059aa18c,1
broker2 = 9cfef56db1e21fbe5901ea18a1cfe8ab4a31afe9b8d4d70952b7c914aaeeca547bc423fa76b3f3ca5cedea0397c8cfbfd23dccf0ceac494f3e43a26d053eb7eb,2
broker3 = 4a2a3fd8e70e544beec364604b717bfdb71672cc136671a1e391526cb94aa5c24d016296d79e201e0a1baf1e77e7089616b547e08e568816f0a6d9dd706fa96c,3
broker4 = 063864e893f906024a7bdceb30e117eed648b744b213bc35e4d184c6681db233a6ab772af0570a9aaaf650a641ca671d95cb2dfd2e2b32e1bd7eec8b0a32ce8b,4
broker1t = 9bae6afc85e26bc0c60467b72cf328cd753454f4cfec6c5c0955a91740165fa55c1ef110187bbb31af090deff86b2c174cd1e643c14eedb085891599089f9abc,1t
broker2t = 7695927317b0fed2a1c2b9da7dcf741a170380bcbf9d1ce8a3c4973d70090ffb43276b9c95ba96839e9b5e9646943dba210379b1b3d63ea69e1cae7c966e3b6a,2t

[concierge]
concierge = dc449f5c3d24d5eab1b42073372386a1b182784723e5dff468801abefe4c406602056a59dfcf910d8b9ce05528e9303a38d4d1e6366bb0aeb5c634b6f7634e6f
Expand Down
30 changes: 30 additions & 0 deletions openregistry/lots/loki/tests/blanks/transferring.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-


def switch_mode(self):
# set test mode and try to change ownership

auth = ('Basic', (self.first_owner, ''))

self.__class__.resource_name = self.resource_name
resource = self.create_resource(auth=auth)
resource_access_transfer = self.resource_transfer
self.__class__.resource_name = ''

# decision that was created from asset can't be updated (by patch)
document = self.db.get(resource['id'])
document['mode'] = 'test'
self.db.save(document)

self.app.authorization = ('Basic', (self.test_owner, ''))
transfer = self.create_transfer()

req_data = {"data": {"id": transfer['data']['id'],
'transfer': resource_access_transfer}}
req_url = '{}/{}/ownership'.format(self.resource_name, resource['id'])

response = self.app.post_json(req_url, req_data)

self.assertEqual(response.status, '200 OK')
self.assertIn('owner', response.json['data'])
self.assertEqual(response.json['data']['owner'], self.test_owner)
67 changes: 67 additions & 0 deletions openregistry/lots/loki/tests/transferring.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-
import unittest

from openregistry.lots.core.tests.base import snitch
from openregistry.lots.core.tests.plugins.transferring.mixins import (
LotOwnershipChangeTestCaseMixin
)

from openregistry.lots.loki.tests.base import LotContentWebTest
from openregistry.lots.loki.tests.blanks.transferring import switch_mode


class LotOwnershipChangeResourceTest(LotContentWebTest,
LotOwnershipChangeTestCaseMixin):

# decision that was created from asset can't be updated
test_new_owner_can_change = None
test_mode_test = snitch(switch_mode)

def setUp(self):
super(LotOwnershipChangeResourceTest, self).setUp()

# needed to work with transfer resource
self.resource_name = self.__class__.resource_name
self.__class__.resource_name = ''

self.not_used_transfer = self.create_transfer()

def tearDown(self):
super(LotOwnershipChangeResourceTest, self).tearDown()
self.__class__.resource_name = self.resource_name

def use_transfer(self, transfer, resource_id, origin_transfer):
req_data = {"data": {"id": transfer['data']['id'],
'transfer': origin_transfer}}

self.app.post_json(
'{}/{}/ownership'.format(self.resource_name, resource_id), req_data
)
response = self.app.get('transfers/{}'.format(transfer['data']['id']))
return response.json

def create_transfer(self):
response = self.app.post_json('transfers', {"data": {}})
return response.json

def get_resource(self, resource_id):
response = self.app.get('{}/{}'.format(self.resource_name, resource_id))
return response.json

def set_resource_mode(self, resource_id, mode):
current_auth = self.app.authorization

self.app.authorization = ('Basic', ('administrator', ''))
self.app.patch_json('{}/{}'.format(self.resource_name, resource_id),
{'data': {'mode': mode}})
self.app.authorization = current_auth


def suite():
tests = unittest.TestSuite()
tests.addTest(unittest.makeSuite(LotOwnershipChangeResourceTest))
return tests


if __name__ == '__main__':
unittest.main(defaultTest='suite')

0 comments on commit c310b8f

Please sign in to comment.