def METHOD_NAME(self, resource_group, storage_account):
    source_file = self.create_temp_file(16, full_random=True)
    account_info = self.get_account_info(resource_group, storage_account)
    with open(source_file, 'rb') as f:
        expect_content = f.read()
    source_container = self.create_container(account_info)
    target_container = self.create_container(account_info)
    self.storage_cmd('storage blob upload -c {} -f "{}" -n src', account_info,
                     source_container, source_file)
    from datetime import datetime, timedelta
    start = datetime.utcnow().strftime('%Y-%m-%dT%H:%MZ')
    expiry = (datetime.utcnow() + timedelta(minutes=5)).strftime('%Y-%m-%dT%H:%MZ')
    sas = self.storage_cmd('storage blob generate-sas -c {} -n src --permissions r --start {}'
                           ' --expiry {}', account_info, source_container, start,
                           expiry).output.strip()
    self.storage_cmd('storage blob copy start -b dst -c {} --source-blob src --sas-token {} --source-container {}',
                     account_info, target_container, sas, source_container)
    from time import sleep, time
    start = time()
    while True:
        # poll until copy has succeeded
        blob = self.storage_cmd('storage blob show -c {} -n dst',
                                account_info, target_container).get_output_in_json()
        if blob["properties"]["copy"]["status"] == "success" or time() - start > 10:
            break
        sleep(.1)
    target_file = self.create_temp_file(1)
    self.storage_cmd('storage blob download -c {} -n dst -f "{}"', account_info,
                     target_container, target_file)
    with open(target_file, 'rb') as f:
        actual_content = f.read()
    self.assertEqual(expect_content, actual_content)
    # test source sas-token input starting with '?'
    if not sas.startswith('?'):
        sas = '?' + sas
    target_container = self.create_container(account_info)
    self.storage_cmd('storage blob copy start -b dst -c {} --source-blob src --source-sas {} --source-container {}',
                     account_info, target_container, sas, source_container)
    start = time()
    while True:
        blob = self.storage_cmd('storage blob show -c {} -n dst',
                                account_info, target_container).get_output_in_json()
        if blob["properties"]["copy"]["status"] == "success" or time() - start > 10:
            break
        sleep(.1)
    target_file = self.create_temp_file(1)
    self.storage_cmd('storage blob download -c {} -n dst -f "{}"', account_info,
                     target_container, target_file)
    with open(target_file, 'rb') as f:
        actual_content = f.read()
    self.assertEqual(expect_content, actual_content)