def callback(request, context): response_drives = [get_data('drive.json'), get_data('drive.json')] ids = [str(i) for i in range(0, 2)] for d in response_drives: d['id'] = ids.pop(0) context.status_code = codes.ok return {'value': response_drives}
def test_auto_renew_tokens(self, mocker): account = account_factory.get_sample_personal_account() url = 'https://test_url' normal_data = [(get_data('error_token_expired.json'), requests.codes.forbidden), ({}, requests.codes.ok)] new_tokens = get_data('personal_access_token_alt.json') def normal_callback(request, context): data, status_code = normal_data.pop(0) context.status_code = status_code return data def renew_callback(request, context): body = parse_qs(request.body) # parse_qs returns dict[str, [int | str]] for k, v in body.items(): self.assertEqual(1, len(v)) body[k] = v.pop() self.assert_compare(self.assertEqual, account.client, body, ['client_id', 'client_secret', 'redirect_uri']) self.assertEqual(account.refresh_token, body['refresh_token']) self.assertEqual('refresh_token', body['grant_type']) context.status_code = requests.codes.ok return new_tokens compares = ['access_token', 'refresh_token', 'token_type'] self.assert_compare(self.assertNotEqual, account, new_tokens, compares) mocker.post(url, json=normal_callback) mocker.post(account.client.OAUTH_TOKEN_URI, json=renew_callback) restapi.ManagedRESTClient(session=requests.Session(), net_mon=None, account=account).post(url) self.assert_compare(self.assertEqual, account, new_tokens, compares)
def callback(request, context): json = request.json() self.assertEqual(json['name'], new_params['new_name']) self.assertEqual(json['description'], new_params['new_description']) self.assertDictEqual(json['parentReference'], new_params['new_parent_reference'].data) self.assertDictEqual(json['fileSystemInfo'], new_params['new_file_system_info'].data) return get_data('image_item.json')
def callback(request, context): data = request.json() self.assertEqual(folder_name, data['name']) self.assertDictEqual({}, data['folder']) self.assertEqual(conflict_behavior, data['@name.conflictBehavior']) context.status_code = codes.created return get_data('new_dir_item.json')
def test_handle_in_progress(self, mock_req): self.assertIsNone(self.task.task_pool.pop_task()) copy_task.AsyncCopyMonitorTask.POLLING_INTERVAL_SEC = 0.005 self.build_mock(mock_req, LOCATION_STR, requests.codes.accepted, get_data('async_in_progress.json')) self.task.handle() time.sleep(0.02) self.assertIs(self.task, self.task.task_pool.pop_task())
def test_handle_failed_fallback(self, mock_req): os.path.isfile = lambda p: True self.build_mock(mock_req, LOCATION_STR, requests.codes.accepted, get_data('async_failed.json')) self.task.handle() t = self.task.task_pool.pop_task() self.assertIsInstance(t, up_task.UploadFileTask) self.assertEqual(self.task.local_path, t.local_path)
def setUp(self): self.data = get_data('folder_item.json') parent_task = get_sample_task_base() self.task = CreateDirTask(parent_task, '/', self.data['name']) self.mock_call = mock.Mock(return_value=OneDriveItem(drive=self.task.drive, data=self.data)) self.task.drive.create_dir = self.mock_call self._backup_isdir = os.path.isdir
def setUp(self): task_base = get_sample_task_base() task_base.rel_parent_path = '/' task_base.item_name = 'to.txt' self.data = get_data('image_item.json') self.async_status = AsyncCopySession(task_base.drive, {'Location': LOCATION_STR}) self.task = copy_task.AsyncCopyMonitorTask(task_base, self.async_status)
def test_purge_cache(self, mock): data = get_data('drive_alt.json') drive_root, drive = self.get_cached_drive_root_tuple() mock.get(self.account.client.API_URI + '/drives/' + drive.drive_id, json=data) self.assertNotEqual(data['id'], drive.drive_id) self.assertIs(drive_root.get_drive(drive.drive_id, skip_cache=True), drive) self.assertEqual(data['id'], drive.drive_id)
def test_client_time(self): self.data['fileSystemInfo'] = get_data('facets/filesysteminfo_facet.json') self.assertNotEqual(self.data['fileSystemInfo']['createdDateTime'], self.data['createdDateTime']) self.assertNotEqual(self.data['fileSystemInfo']['lastModifiedDateTime'], self.data['lastModifiedDateTime']) item = items.OneDriveItem(get_sample_drive_object(), self.data) self.assert_timestamps(self.data['fileSystemInfo'], item) self.assert_timestamps(self.data['fileSystemInfo'], item.fs_info)
def setUp(self): data = get_data('folder_item.json') parent_task = get_sample_task_base() self.item = OneDriveItem(data=data, drive=parent_task.drive) self.task = DeleteItemTask(parent_task, rel_parent_path='/', item_name=self.item.name, is_folder=self.item.is_folder) self.task.items_store.update_item(self.item)
def setUp(self): self.data = get_data('image_item.json') self.data['audio'] = get_data('facets/audio_facet.json') self.data['deleted'] = get_data('facets/deleted_facet.json') self.data['photo'] = get_data('facets/photo_facet.json') self.data['video'] = get_data('facets/video_facet.json') self.data['specialFolder'] = get_data('facets/specialfolder_facet.json') self.data['location'] = get_data('facets/location_facet.json') self.data['parentReference'] = get_data('item_reference.json') self.item = items.OneDriveItem(drive=get_sample_drive_object(), data=self.data)
def setUp(self): self.data = get_data('image_item.json') self.data['name'] = 'test' self.data['size'] = 1 self.parent_task = get_sample_task_base() self.item = OneDriveItem(drive=self.parent_task.drive, data=self.data) # The '/' in relative path is generated by MergeDirTask at root. Merging root itself has rel parent path ''. self.task = DownloadFileTask(self.parent_task, rel_parent_path='/', item=self.item) self.calls_hist = setup_os_mock()
def test_deserialize_account_bad_profile(self, mock): d = {} mock.get('https://apis.live.net/v5.0/me', json=get_data('user_profile.json'), status_code=codes.ok) self.account_store.deserialize_account_row( self.personal_account.profile.user_id, self.personal_account.TYPE, self.personal_account.dump(), self.personal_account.profile.dump() + '.', d) self.assertEqual(1, len(d))
def test_get_all_drives(self): drive_conf = dict(DriveConfig.DEFAULT_VALUES) drive_conf['local_root'] = '/tmp' drive = drives.DriveObject(self.drive_root, get_data('drive.json'), DriveConfig(drive_conf)) self.drives_store.add_record(drive) for k, drive_value in self.drives_store.get_all_drives().items(): drive_id, account_id, account_type = k self.assertEqual(drive_id, drive_value.drive_id) self.assertEqual(drive.drive_id, drive_value.drive_id) self.assertEqual(drive.config.local_root, drive_value.config.local_root)
def test_assemble_drive_error(self): d = {} drive = drives.DriveObject(self.drive_root, get_data('drive.json'), DriveConfig.default_config()) rows = [ ('did', 'aid', 'at', drive.dump() + '.'), (drive.drive_id, self.personal_account.profile.user_id, self.personal_account.TYPE, drive.dump() + '.') ] for r in rows: self.drives_store.assemble_drive_record(r, d) self.assertEqual(0, len(d), str(r))
def test_parse(self): data = get_data('upload_session.json') session = resources.UploadSession(data) self.assertEqual(data['uploadUrl'], session.upload_url) self.assertEqual(str_to_datetime(data['expirationDateTime']), session.expires_at) ranges = [] for r in session.next_ranges: if r[1] is None: ranges.append(str(r[0]) + '-') else: ranges.append('%d-%d' % r) self.assertListEqual(data['nextExpectedRanges'], ranges)
def run_get_drive(self, drive_id): """ :param str | None drive_id: """ with requests_mock.Mocker() as mock: path = '/drive' if drive_id is not None: path += 's/' + drive_id mock.get(self.account.client.API_URI + path, json=get_data('drive.json')) if drive_id is not None: drive = self.root.get_drive(drive_id) else: drive = self.root.get_default_drive() self.assertIsInstance(drive, drives.DriveObject)
def use_item_collection(self, method_name, url, params): item_set = get_data('item_collection.json')['value'] item_names = [i['name'] for i in item_set] next_link = 'https://get_children' with requests_mock.Mocker() as mock: def callback(request, context): data = {'value': [item_set.pop(0)]} if len(item_set) > 0: data['@odata.nextLink'] = next_link context.status_code = codes.ok return data mock.get(url, json=callback) mock.get(next_link, json=callback) collection = getattr(self.drive, method_name)(**params) received_names = [] while collection.has_next: page = collection.get_next() for i in page: received_names.append(i.name) self.assertListEqual(item_names, received_names)
def test_update(self, mock_request): def callback(request, context): self.data['percentageComplete'] += 50 if self.data['percentageComplete'] == 100: self.data['status'] = options.AsyncOperationStatuses.COMPLETED context.status_code = requests.codes.see_other context.headers['location'] = 'https://bar' else: self.data['status'] = options.AsyncOperationStatuses.IN_PROGRESS context.status_code = requests.codes.accepted return self.data mock_request.get('https://foo', json=callback) mock_request.get('https://bar', json=get_data('image_item.json')) expects = [(50, options.AsyncOperationStatuses.IN_PROGRESS), (100, options.AsyncOperationStatuses.COMPLETED)] for exp in expects: self.session.update_status() exp_percentage, exp_status = exp self.assertEqual(self.data['operation'], self.session.operation) self.assertEqual(exp_percentage, self.session.percentage_complete) self.assertEqual(exp_status, self.session.status) self.assertIsInstance(self.session.get_item(), items.OneDriveItem)
def setUp(self): self.data = get_data('drive_root.json') self.item = items.OneDriveItem(drive=get_sample_drive_object(), data=self.data)
def setUp(self): self.data = get_data('image_item.json') self.assertNotIn('fileSystemInfo', self.data)
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data('storage/mainnet/KT18ps2xBkk7U4dGLDGR526MMqBHHbyhsxFT_babylon.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/carthagenet/KT1S7tzLzhrafzzVTxmpGxJdgSCaUssUCcUQ.json')
def test_michelson_inverse_parameter_ooqAps(self): expected = get_data( path='contracts/KT1GqyAwGGqUbrduNgn4c4aVUXU9UGnXwNmD/parameter_ooqAps.json') actual = michelson_to_micheline(micheline_to_michelson(expected)) self.assertEqual(expected, actual)
def test_michelson_parse_parameter_onu43U(self): expected = get_data( path='contracts/KT1GqyAwGGqUbrduNgn4c4aVUXU9UGnXwNmD/parameter_onu43U.json') actual = michelson_to_micheline(get_data( path='contracts/KT1GqyAwGGqUbrduNgn4c4aVUXU9UGnXwNmD/parameter_onu43U.tz')) self.assertEqual(expected, actual)
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data('storage/zeronet/KT1MeZoiLeDPgxwF9C3Ny7h3mZbCXAaFdFLA.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/carthagenet/KT1WjvwKsNcmP3yfMns2RexLtjPzCpr3Sbj3.json')
def test_micheline_inverse_parameter_onh2C5(self): expected = get_data( path='contracts/KT1RrfbcDM5eqho4j4u5EbqbaoEFwBsXA434/parameter_onh2C5.json') decoded = decode_micheline(expected, self.code[0], self.schema['parameter']) actual = encode_micheline(decoded, self.schema['parameter']) self.assertEqual(expected, actual)
def test_micheline_inverse_storage_KT1Rrf(self): expected = get_data( path='contracts/KT1RrfbcDM5eqho4j4u5EbqbaoEFwBsXA434/storage_KT1Rrf.json') decoded = decode_micheline(expected, self.code[1], self.schema['storage']) actual = encode_micheline(decoded, self.schema['storage']) self.assertEqual(expected, actual)
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data('storage/zeronet/KT19xASUcoMsrncbEq3xaruyJajc7gpwDxkY.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/carthagenet/KT1RP2iubxxdmhbuUfGd92hKnJJYJB3PEx6J.json')
def test_michelson_inverse_code_KT1AxG(self): expected = get_data( path= 'contracts/KT1AxGnZL9YzmXZh1Lc4dHhznAeJAQCfML25/code_KT1AxG.json') actual = michelson_to_micheline(micheline_to_michelson(expected)) self.assertEqual(expected, actual)
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/zeronet/KT1WDwwJf2e53pDPgEgrz24fpd24JYmyBxwr.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/zeronet/KT1GCvVbzroDUAYD1iyG3jPbbpdzu3nbK78D.json')
def setUp(self): self.data = get_data('facets/filesysteminfo_facet.json') self.facet = facets.FileSystemInfoFacet(self.data)
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data('storage/carthagenet/KT1RDMoH6npCkENUEkLuvGuHDn9VDWxupuvM.json')
def setUp(self): self.data = get_data('facets/permission_facet.json') self.facet = facets.PermissionFacet(self.data)
def test_handle_error(self): self.task.drive.copy_item = mock.Mock(side_effect=OneDriveError(get_data('error_type1.json'))) self.task.handle()
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/mainnet/KT19QjbLyaZyYHRWqny6ix1gvTC4nnVG7RwQ_babylon.json' )
def test_michelson_inverse_storage_KT1Gqy(self): expected = get_data( path='contracts/KT1GqyAwGGqUbrduNgn4c4aVUXU9UGnXwNmD/storage_KT1Gqy.json') actual = michelson_to_micheline(micheline_to_michelson(expected)) self.assertEqual(expected, actual)
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/carthagenet/KT1MfeYGge5TynxYpUx3DdrtRcqEibp3mf2x.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/carthagenet/KT1EGMHYXdbbKYUVgbTqsjV7z29qrTyzF2GQ.json')
def test_forge_opRcji(self): expected = get_data( path='operations/opRcjiXMSS6L9F36AVCzF2b4tG3HuJRkMVQ8Y8ynGm6MrC5HWue/forged.hex') actual = forge_operation_group(get_data( path='operations/opRcjiXMSS6L9F36AVCzF2b4tG3HuJRkMVQ8Y8ynGm6MrC5HWue/unsigned.json')) self.assertEqual(expected, actual)
def callback(request, context): context.status_code = requests.codes.bad return get_data('error_token_expired.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data('storage/carthagenet/KT19ySur6btJjtgxhkw8Y8Do4QCawLCdWf8r.json')
def _add_item(self, filename): data = get_data(filename) item = items.OneDriveItem(self.drive, data) self.itemdb.update_item(item, items_db.ItemRecordStatuses.OK) self.all_items.append(item) self.all_items_data.append(data)
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data('storage/mainnet/KT1ExvG3EjTrvDcAU7EqLNb77agPa5u6KvnY_babylon.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/zeronet/KT1WbednSEkCfcoK7iCsFv9a8ErP8XtMDu8M.json')
def test_forge_oohafK(self): expected = get_data( path='operations/oohafKVbkS3Xv98MN9js66nnM1aWgfaKGfsEaMgmNQfyPSJ7pfN/forged.hex') actual = forge_operation_group(get_data( path='operations/oohafKVbkS3Xv98MN9js66nnM1aWgfaKGfsEaMgmNQfyPSJ7pfN/unsigned.json')) self.assertEqual(expected, actual)
def assert_facet(self, filename, facet): data = get_data('facets/' + filename) obj = facet(data) assert_properties(self, data, obj) return obj
def setUp(self): self.data = get_data('drive.json') self.drive = drive_factory.get_sample_drive_object(self.data)
def setUp(self): task_base = get_sample_task_base() self.data = get_data('image_item.json') self.item = OneDriveItem(drive=task_base.drive, data=self.data) self.task = copy_task.AsyncCopyItemTask(task_base, '/', 'to.txt', self.item)
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data('storage/zeronet/KT1V1TJy2e9iCe6yyCH1PPawbsJEzsALr983.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/zeronet/KT1N4ppvHPr4Jyrctit8yLqRcrRNVJ3GJYFU.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/carthagenet/KT1R37h2zxWQkZvk7T9XBifTHEn17tNexLh4.json')
def callback(request, context): data = get_data('drive_root.json') context.status_code = codes.ok return data
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/zeronet/KT1SDVoSEoBDQd4HasTdQ8pPn2g7YnwiAjga.json')
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/mainnet/KT1KwENjhqZqNU2NyMCRPffQUjsbfQHquqNn_babylon.json' )
def setUpClass(cls): cls.maxDiff = None cls.contract = get_data( 'storage/mainnet/KT1N36Cmu1QFaDcYqdNN99ksijEsVjMgKny6_babylon.json' )