def validate_subdir_scenario(self, account_info, share, directory): source_file = self.create_temp_file(64, full_random=False) dest_file = self.create_temp_file(1) filename = 'testfile.txt' self.storage_cmd('storage file upload --share-name {} -p "{}/{}" --source "{}"', account_info, share, directory, filename, source_file) self.storage_cmd('storage file exists --share-name {} -p "{}/{}"', account_info, share, directory, filename) \ .assert_with_checks(JMESPathCheck('exists', True)) self.storage_cmd('storage file download --share-name {} -p "{}/{}" --dest "{}"', account_info, share, directory, filename, dest_file) self.assertTrue(os.path.isfile(dest_file)) self.assertEqual(os.stat(dest_file).st_size, 64 * 1024) self.assertIn(filename, self.storage_cmd('storage file list -s {} -p {} --query "[].name"', account_info, share, directory) .get_output_in_json()) self.storage_cmd('storage share stats --name {}', account_info, share) \ .assert_with_checks(StringCheck('1')) self.storage_cmd('storage file delete --share-name {} -p "{}/{}"', account_info, share, directory, filename) self.storage_cmd('storage file exists -s {} -p "{}"', account_info, share, filename) \ .assert_with_checks(JMESPathCheck('exists', False))
def validate_file_scenario(self, account_info, share): source_file = self.create_temp_file(128, full_random=False) dest_file = self.create_temp_file(1) filename = "sample_file.bin" self.storage_cmd('storage file upload --share-name {} --source "{}" -p {}', account_info, share, source_file, filename) self.storage_cmd('storage file exists -s {} -p {}', account_info, share, filename) \ .assert_with_checks(JMESPathCheck('exists', True)) if os.path.isfile(dest_file): os.remove(dest_file) self.storage_cmd('storage file download --share-name {} -p "{}" --dest "{}"', account_info, share, filename, dest_file) self.assertTrue(os.path.isfile(dest_file)) self.assertEqual(os.stat(dest_file).st_size, 128 * 1024) self.storage_cmd('storage file download --share-name {} -p "{}" --dest "{}" --start-range 0 --end-range 511', account_info, share, filename, dest_file) self.assertTrue(os.path.isfile(dest_file)) self.assertEqual(os.stat(dest_file).st_size, 512) # test resize command self.storage_cmd('storage file resize --share-name {} -p "{}" --size 1234', account_info, share, filename) self.storage_cmd('storage file show -s {} -p "{}"', account_info, share, filename) \ .assert_with_checks(JMESPathCheck('properties.contentLength', 1234)) # test ability to set and reset metadata self.storage_cmd('storage file metadata update --share-name {} -p "{}" --metadata a=b c=d', account_info, share, filename) self.storage_cmd('storage file metadata show -s {} -p "{}"', account_info, share, filename) \ .assert_with_checks(JMESPathCheck('a', 'b'), JMESPathCheck('c', 'd')) self.storage_cmd('storage file metadata update --share-name {} -p "{}"', account_info, share, filename) self.storage_cmd('storage file metadata show -s {} -p "{}"', account_info, share, filename) \ .assert_with_checks(NoneCheck()) file_url = 'https://{}.file.core.windows.net/{}/{}'.format(account_info[0], share, filename) self.storage_cmd('storage file url -s {} -p "{}"', account_info, share, filename) \ .assert_with_checks(StringCheck(file_url)) self.assertIn(filename, self.storage_cmd('storage file list -s {} --query "[].name"', account_info, share).get_output_in_json()) from datetime import datetime, timedelta expiry = (datetime.utcnow() + timedelta(hours=1)).strftime('%Y-%m-%dT%H:%MZ') self.storage_cmd('storage file generate-sas -s {} -p {} --permissions r --expiry {}', account_info, share, filename, expiry).assert_with_checks(StringContainCheck('sig=')) self.storage_cmd('storage file update -s {} -p {} --content-type "test/type"', account_info, share, filename) self.storage_cmd('storage file show -s {} -p {}', account_info, share, filename) \ .assert_with_checks(JMESPathCheck('properties.contentSettings.contentType', 'test/type')) self.storage_cmd('storage file delete --share-name {} -p "{}"', account_info, share, filename) self.storage_cmd('storage file exists --share-name {} -p "{}"', account_info, share, filename) \ .assert_with_checks(JMESPathCheck('exists', False))