def testByPermRead(self, owner, expected_email): vol_uuid = str(uuid.uuid4()).upper() secret = str(uuid.uuid4()) base.User( key_name='*****@*****.**', user=users.get_current_user(), email='*****@*****.**', provisioning_perms=[permissions.RETRIEVE], ).put() models.ProvisioningVolume( owners=[owner], hdd_serial='stub', passphrase=secret, platform_uuid='stub', serial='stub', volume_uuid=vol_uuid, ).put() with mock.patch.object(util, 'SendEmail') as mock_send_email: self.testapp.get('/provisioning/%s?json=1' % vol_uuid) self.assertEqual(1, mock_send_email.call_count) recipients, _, _ = mock_send_email.call_args[0] self.assertItemsEqual( ['*****@*****.**', expected_email, '*****@*****.**'], recipients)
def testWalkthrough(self, _): models.ProvisioningVolume(owner='stub', created_by=users.get_current_user(), hdd_serial='stub', passphrase=str(uuid.uuid4()), created=datetime.datetime.now(), platform_uuid='stub', serial='stub', volume_uuid=str(uuid.uuid4()).upper(), tag='v1').put() resp = gae_main.app.get_response( '/api/internal/maintenance/update_volumes_schema', {'REQUEST_METHOD': 'GET'}) self.assertEqual(200, resp.status_int) taskqueue = self.testbed.get_stub(testbed.TASKQUEUE_SERVICE_NAME) tasks = taskqueue.get_filtered_tasks() self.assertEqual(9, len(tasks)) for task in tasks: deferred.run(task.payload) self.assertEqual('v1', models.ProvisioningVolume.all().fetch(1)[0].tag)
def testByPermSilentWithAudit(self): vol_uuid = str(uuid.uuid4()).upper() secret = str(uuid.uuid4()) base.User( key_name='*****@*****.**', user=users.get_current_user(), email='*****@*****.**', provisioning_perms=[ permissions.RETRIEVE, permissions.SILENT_RETRIEVE_WITH_AUDIT_EMAIL, ], ).put() models.ProvisioningVolume( owners=['stub6'], hdd_serial='stub', passphrase=secret, platform_uuid='stub', serial='stub', volume_uuid=vol_uuid, ).put() with mock.patch.object(util, 'SendEmail') as mock_send_email: self.testapp.get('/provisioning/%s?json=1' % vol_uuid) self.assertEqual(1, mock_send_email.call_count) recipients, _, _ = mock_send_email.call_args[0] self.assertEqual(['*****@*****.**', '*****@*****.**'], recipients)
def testProvisioningQueryCreatedBySortingOrder(self): models.ProvisioningVolume.created.auto_now = False today = datetime.datetime.today() for i in range(2 * search.MAX_PASSPHRASES_PER_QUERY): models.ProvisioningVolume( owner='stub7', serial='stub', volume_uuid=str(uuid.uuid4()), created_by=users.User('*****@*****.**'), hdd_serial='stub', passphrase=str(uuid.uuid4()), platform_uuid='stub', created=today - datetime.timedelta(days=i), ).put() resp = util.FromSafeJson( self.testapp.get( '/search?search_type=provisioning&' 'field1=created_by&[email protected]&json=1').body) self.assertTrue(resp['too_many_results']) volumes = resp['passphrases'] self.assertEqual(search.MAX_PASSPHRASES_PER_QUERY, len(volumes)) for i in range(search.MAX_PASSPHRASES_PER_QUERY): self.assertEqual('stub7', volumes[i]['created_by']) self.assertEqual(str(today - datetime.timedelta(days=i)), volumes[i]['created']) models.ProvisioningVolume.created.auto_now = True
def testProvisioningPassphrasesForQueryCreatedBy(self): models.ProvisioningVolume.created.auto_now = False today = datetime.datetime.today() for i in range(2 * search.MAX_PASSPHRASES_PER_QUERY): models.ProvisioningVolume( owner='stub', serial='stub', volume_uuid=str(uuid.uuid4()), created_by=users.User('*****@*****.**'), hdd_serial='stub', passphrase=str(uuid.uuid4()), platform_uuid='stub', created=today - datetime.timedelta(days=i), ).put() volumes = search._PassphrasesForQuery(models.ProvisioningVolume, 'created_by:[email protected]', False) self.assertEqual(search.MAX_PASSPHRASES_PER_QUERY, len(volumes)) for i in range(search.MAX_PASSPHRASES_PER_QUERY): self.assertEqual(users.User('*****@*****.**'), volumes[i].created_by) self.assertEqual(today - datetime.timedelta(days=i), volumes[i].created) models.ProvisioningVolume.created.auto_now = True
def testWalkthrough(self): models.ProvisioningVolume.created.auto_now = False vol_uuid1 = str(uuid.uuid4()).upper() secret1 = str(uuid.uuid4()) base.User( key_name='*****@*****.**', user=users.get_current_user(), provisioning_perms=[], ).put() models.ProvisioningVolume( owner='stub', created_by=users.get_current_user(), hdd_serial='stub', passphrase=secret1, created=datetime.datetime.now(), platform_uuid='stub', serial='stub', volume_uuid=vol_uuid1, ).put() old = datetime.datetime.now() - datetime.timedelta(days=365) models.ProvisioningVolume(owner='stub1', created_by=users.get_current_user(), hdd_serial='stub', passphrase=secret1, created=old, platform_uuid='stub', serial='stub', volume_uuid=str(uuid.uuid4()).upper()).put() resp = gae_main.app.get_response('/created?json=1', {'REQUEST_METHOD': 'GET'}) self.assertEqual(httplib.OK, resp.status_int) data = util.FromSafeJson(resp.body) self.assertEqual(1, len(data)) self.assertEqual(secret1, data[0]['passphrase']) models.ProvisioningVolume.created.auto_now = True
def _CreateNewSecretEntity(self, owner, volume_uuid, secret): user = base.GetCurrentUser() platform = self.request.get('platform') # Set default platform to Mac if not platform: platform = 'Mac' return models.ProvisioningVolume(owner=owner, volume_uuid=volume_uuid, passphrase=str(secret))
def testProvisioningAsOwner(self): vol_uuid = str(uuid.uuid4()).upper() secret = str(uuid.uuid4()) base.User( key_name='*****@*****.**', user=users.get_current_user(), provisioning_perms=[permissions.RETRIEVE_OWN], ).put() models.ProvisioningVolume( owner='stub7', hdd_serial='stub', passphrase=secret, platform_uuid='stub', serial='stub', volume_uuid=vol_uuid, ).put() with mock.patch.object(util, 'SendEmail') as _: resp = gae_main.app.get_response( '/provisioning/%s?json=1' % vol_uuid) self.assertEqual(httplib.OK, resp.status_int) self.assertIn('"passphrase": "%s"' % secret, resp.body)