nebius/SWE-rebench-V2-PRs huggingface dataset:
Repository: softlayer/softlayer-python
Pull request #1080 (2018-11-19 19:53:01)

Fix issue 1059


Patch:
diff --git a/SoftLayer/CLI/hardware/toggle_ipmi.py b/SoftLayer/CLI/hardware/toggle_ipmi.py
new file mode 100644
index 00000000..2e49bd72
--- /dev/null
+++ b/SoftLayer/CLI/hardware/toggle_ipmi.py
@@ -0,0 +1,22 @@
+"""Toggle the IPMI interface on and off."""
+# :license: MIT, see LICENSE for more details.
+
+import click
+
+import SoftLayer
+from SoftLayer.CLI import environment
+from SoftLayer.CLI import helpers
+
+
+@click.command()
+@click.argument('identifier')
+@click.option('--enable/--disable', default=True,
+              help="Whether enable (DEFAULT) or disable the interface.")
+@environment.pass_env
+def cli(env, identifier, enable):
+    """Toggle the IPMI interface on and off"""
+
+    mgr = SoftLayer.HardwareManager(env.client)
+    hw_id = helpers.resolve_id(mgr.resolve_ids, identifier, 'hardware')
+    result = env.client['Hardware_Server'].toggleManagementInterface(enable, id=hw_id)
+    env.fout(result)
diff --git a/SoftLayer/CLI/routes.py b/SoftLayer/CLI/routes.py
index e80a0b50..cebf2bc0 100644
--- a/SoftLayer/CLI/routes.py
+++ b/SoftLayer/CLI/routes.py
@@ -237,6 +237,7 @@
     ('hardware:update-firmware', 'SoftLayer.CLI.hardware.update_firmware:cli'),
     ('hardware:rescue', 'SoftLayer.CLI.hardware.power:rescue'),
     ('hardware:ready', 'SoftLayer.CLI.hardware.ready:cli'),
+    ('hardware:toggle-ipmi', 'SoftLayer.CLI.hardware.toggle_ipmi:cli'),
 
     ('securitygroup', 'SoftLayer.CLI.securitygroup'),
     ('securitygroup:list', 'SoftLayer.CLI.securitygroup.list:cli'),
diff --git a/SoftLayer/fixtures/SoftLayer_Hardware_Server.py b/SoftLayer/fixtures/SoftLayer_Hardware_Server.py
index 61bdbf98..9a9587b8 100644
--- a/SoftLayer/fixtures/SoftLayer_Hardware_Server.py
+++ b/SoftLayer/fixtures/SoftLayer_Hardware_Server.py
@@ -73,6 +73,7 @@
 setTags = True
 setPrivateNetworkInterfaceSpeed = True
 setPublicNetworkInterfaceSpeed = True
+toggleManagementInterface = True
 powerOff = True
 powerOn = True
 powerCycle = True


Test patch:
diff --git a/tests/CLI/modules/server_tests.py b/tests/CLI/modules/server_tests.py
index 2f26c4ec..c9e03077 100644
--- a/tests/CLI/modules/server_tests.py
+++ b/tests/CLI/modules/server_tests.py
@@ -580,3 +580,15 @@ def test_going_ready(self, _sleep):
         result = self.run_command(['hw', 'ready', '100', '--wait=100'])
         self.assert_no_fail(result)
         self.assertEqual(result.output, '"READY"\n')
+
+    def test_toggle_ipmi_on(self):
+        mock.return_value = True
+        result = self.run_command(['server', 'toggle-ipmi', '--enable', '12345'])
+        self.assert_no_fail(result)
+        self.assertEqual(result.output, 'True\n')
+
+    def test_toggle_ipmi_off(self):
+        mock.return_value = True
+        result = self.run_command(['server', 'toggle-ipmi', '--disable', '12345'])
+        self.assert_no_fail(result)
+        self.assertEqual(result.output, 'True\n')
Repository: softlayer/softlayer-python
Pull request #1083 (2018-11-27 21:16:00)

Fix file volume-cancel
Fixed file volume-cancel https://github.com/softlayer/softlayer-python/issues/1081


Patch:
diff --git a/SoftLayer/managers/file.py b/SoftLayer/managers/file.py
index e0a25032..b6d16053 100644
--- a/SoftLayer/managers/file.py
+++ b/SoftLayer/managers/file.py
@@ -482,6 +482,9 @@ def cancel_file_volume(self, volume_id, reason='No longer needed', immediate=Fal
         file_volume = self.get_file_volume_details(
             volume_id,
             mask='mask[id,billingItem[id,hourlyFlag]]')
+
+        if 'billingItem' not in file_volume:
+            raise exceptions.SoftLayerError('The volume has already been canceled')
         billing_item_id = file_volume['billingItem']['id']
 
         if utils.lookup(file_volume, 'billingItem', 'hourlyFlag'):


Test patch:
diff --git a/tests/CLI/modules/file_tests.py b/tests/CLI/modules/file_tests.py
index 9bc56320..465e9ec0 100644
--- a/tests/CLI/modules/file_tests.py
+++ b/tests/CLI/modules/file_tests.py
@@ -4,6 +4,7 @@
 
     :license: MIT, see LICENSE for more details.
 """
+from SoftLayer import exceptions
 from SoftLayer import testing
 
 import json
@@ -94,6 +95,31 @@ def test_volume_cancel(self):
         self.assert_called_with('SoftLayer_Billing_Item', 'cancelItem',
                                 args=(False, True, None))
 
+    def test_volume_cancel_with_billing_item(self):
+        result = self.run_command([
+            '--really', 'file', 'volume-cancel', '1234'])
+
+        self.assert_no_fail(result)
+        self.assertEqual('File volume with id 1234 has been marked'
+                         ' for cancellation\n', result.output)
+        self.assert_called_with('SoftLayer_Network_Storage', 'getObject')
+
+    def test_volume_cancel_without_billing_item(self):
+        p_mock = self.set_mock('SoftLayer_Network_Storage', 'getObject')
+        p_mock.return_value = {
+            "accountId": 1234,
+            "capacityGb": 20,
+            "createDate": "2015-04-29T06:55:55-07:00",
+            "id": 11111,
+            "nasType": "NAS",
+            "username": "SL01SEV307608_1"
+        }
+
+        result = self.run_command([
+            '--really', 'file', 'volume-cancel', '1234'])
+
+        self.assertIsInstance(result.exception, exceptions.SoftLayerError)
+
     def test_volume_detail(self):
         result = self.run_command(['file', 'volume-detail', '1234'])
Repository: softlayer/softlayer-python
Pull request #1160 (2019-08-13 21:22:18)

Improve hardware cancellation to deal with additional cases
Handle the case where a billing item as well as an open cancellation ticket are not available.


Patch:
diff --git a/SoftLayer/managers/hardware.py b/SoftLayer/managers/hardware.py
index 4a52a523..f5b01646 100644
--- a/SoftLayer/managers/hardware.py
+++ b/SoftLayer/managers/hardware.py
@@ -9,7 +9,6 @@
 import socket
 import time
 
-
 import SoftLayer
 from SoftLayer.decoration import retry
 from SoftLayer.managers import ordering
@@ -86,14 +85,17 @@ def cancel_hardware(self, hardware_id, reason='unneeded', comment='', immediate=
             raise SoftLayer.SoftLayerError("Unable to cancel hardware with running transaction")
 
         if 'billingItem' not in hw_billing:
-            raise SoftLayer.SoftLayerError("Ticket #%s already exists for this server" %
-                                           hw_billing['openCancellationTicket']['id'])
+            if utils.lookup(hw_billing, 'openCancellationTicket', 'id'):
+                raise SoftLayer.SoftLayerError("Ticket #%s already exists for this server" %
+                                               hw_billing['openCancellationTicket']['id'])
+            raise SoftLayer.SoftLayerError("Cannot locate billing for the server. "
+                                           "The server may already be cancelled.")
 
         billing_id = hw_billing['billingItem']['id']
 
         if immediate and not hw_billing['hourlyBillingFlag']:
-            LOGGER.warning("Immediate cancelation of montly servers is not guaranteed."
-                           "Please check the cancelation ticket for updates.")
+            LOGGER.warning("Immediate cancellation of monthly servers is not guaranteed."
+                           "Please check the cancellation ticket for updates.")
 
             result = self.client.call('Billing_Item', 'cancelItem',
                                       False, False, cancel_reason, comment, id=billing_id)


Test patch:
diff --git a/tests/managers/hardware_tests.py b/tests/managers/hardware_tests.py
index 461094be..120f6060 100644
--- a/tests/managers/hardware_tests.py
+++ b/tests/managers/hardware_tests.py
@@ -291,6 +291,15 @@ def test_cancel_hardware_no_billing_item(self):
                                6327)
         self.assertEqual("Ticket #1234 already exists for this server", str(ex))
 
+    def test_cancel_hardwareno_billing_item_or_ticket(self):
+        mock = self.set_mock('SoftLayer_Hardware_Server', 'getObject')
+        mock.return_value = {'id': 987}
+
+        ex = self.assertRaises(SoftLayer.SoftLayerError,
+                               self.hardware.cancel_hardware,
+                               6327)
+        self.assertEqual("Cannot locate billing for the server. The server may already be cancelled.", str(ex))
+
     def test_cancel_hardware_monthly_now(self):
         mock = self.set_mock('SoftLayer_Hardware_Server', 'getObject')
         mock.return_value = {'id': 987, 'billingItem': {'id': 1234},
Repository: softlayer/softlayer-python
Pull request #1186 (2019-11-15 18:26:57)

Fix cdn detail usage.
Fix cdn detail usage https://github.com/softlayer/softlayer-python/issues/1185.


Patch:
diff --git a/SoftLayer/managers/cdn.py b/SoftLayer/managers/cdn.py
index 95a32f87..2ead8c1f 100644
--- a/SoftLayer/managers/cdn.py
+++ b/SoftLayer/managers/cdn.py
@@ -21,6 +21,8 @@ class CDNManager(utils.IdentifierMixin, object):
 
     def __init__(self, client):
         self.client = client
+        self._start_date = None
+        self._end_date = None
         self.cdn_configuration = self.client['Network_CdnMarketplace_Configuration_Mapping']
         self.cdn_path = self.client['SoftLayer_Network_CdnMarketplace_Configuration_Mapping_Path']
         self.cdn_metrics = self.client['Network_CdnMarketplace_Metrics']
@@ -151,10 +153,20 @@ def get_usage_metrics(self, unique_id, history=30, frequency="aggregate"):
         _start = utils.days_to_datetime(history)
         _end = utils.days_to_datetime(0)
 
-        _start_date = utils.timestamp(_start)
-        _end_date = utils.timestamp(_end)
+        self._start_date = utils.timestamp(_start)
+        self._end_date = utils.timestamp(_end)
 
-        usage = self.cdn_metrics.getMappingUsageMetrics(unique_id, _start_date, _end_date, frequency)
+        usage = self.cdn_metrics.getMappingUsageMetrics(unique_id, self._start_date, self._end_date, frequency)
 
         # The method getMappingUsageMetrics() returns an array but there is only 1 object
         return usage[0]
+
+    @property
+    def start_data(self):
+        """Retrieve the cdn usage metric start date."""
+        return self._start_date
+
+    @property
+    def end_date(self):
+        """Retrieve the cdn usage metric end date."""
+        return self._end_date


Test patch:
diff --git a/tests/managers/cdn_tests.py b/tests/managers/cdn_tests.py
index 41a675c6..31c3c4fa 100644
--- a/tests/managers/cdn_tests.py
+++ b/tests/managers/cdn_tests.py
@@ -7,7 +7,6 @@
 
 from SoftLayer.managers import cdn
 from SoftLayer import testing
-from SoftLayer import utils
 
 
 class CDNTests(testing.TestCase):
@@ -31,15 +30,9 @@ def test_detail_cdn(self):
     def test_detail_usage_metric(self):
         self.cdn_client.get_usage_metrics(12345, history=30, frequency="aggregate")
 
-        _start = utils.days_to_datetime(30)
-        _end = utils.days_to_datetime(0)
-
-        _start_date = utils.timestamp(_start)
-        _end_date = utils.timestamp(_end)
-
         args = (12345,
-                _start_date,
-                _end_date,
+                self.cdn_client.start_data,
+                self.cdn_client.end_date,
                 "aggregate")
         self.assert_called_with('SoftLayer_Network_CdnMarketplace_Metrics',
                                 'getMappingUsageMetrics',
Repository: softlayer/softlayer-python
Pull request #1261 (2020-04-24 21:44:13)

Fix AttributeError: 'NoneType' object has no attribute 'keys


Patch:
diff --git a/SoftLayer/CLI/formatting.py b/SoftLayer/CLI/formatting.py
index b591f814..b88fe056 100644
--- a/SoftLayer/CLI/formatting.py
+++ b/SoftLayer/CLI/formatting.py
@@ -416,11 +416,13 @@ def _format_list(result):
     if not result:
         return result
 
-    if isinstance(result[0], dict):
-        return _format_list_objects(result)
+    new_result = [item for item in result if item]
+
+    if isinstance(new_result[0], dict):
+        return _format_list_objects(new_result)
 
     table = Table(['value'])
-    for item in result:
+    for item in new_result:
         table.add_row([iter_to_table(item)])
     return table
 
@@ -430,12 +432,15 @@ def _format_list_objects(result):
 
     all_keys = set()
     for item in result:
-        all_keys = all_keys.union(item.keys())
+        if isinstance(item, dict):
+            all_keys = all_keys.union(item.keys())
 
     all_keys = sorted(all_keys)
     table = Table(all_keys)
 
     for item in result:
+        if not item:
+            continue
         values = []
         for key in all_keys:
             value = iter_to_table(item.get(key))


Test patch:
diff --git a/tests/CLI/helper_tests.py b/tests/CLI/helper_tests.py
index 5c6656c2..c22278c3 100644
--- a/tests/CLI/helper_tests.py
+++ b/tests/CLI/helper_tests.py
@@ -439,11 +439,10 @@ def test_template_options(self):
 class TestExportToTemplate(testing.TestCase):
 
     def test_export_to_template(self):
-        if(sys.platform.startswith("win")):
+        if (sys.platform.startswith("win")):
             self.skipTest("Test doesn't work in Windows")
         # Tempfile creation is wonky on windows
         with tempfile.NamedTemporaryFile() as tmp:
-
             template.export_to_template(tmp.name, {
                 'os': None,
                 'datacenter': 'ams01',
@@ -487,3 +486,9 @@ def test_format_api_list_non_objects(self):
         self.assertIsInstance(result, formatting.Table)
         self.assertEqual(result.columns, ['value'])
         self.assertEqual(result.rows, [['a'], ['b'], ['c']])
+
+    def test_format_api_list_with_none_value(self):
+        result = formatting._format_list([{'key': [None, 'value']}, None])
+
+        self.assertIsInstance(result, formatting.Table)
+        self.assertEqual(result.columns, ['key'])
Repository: softlayer/softlayer-python
Pull request #1291 (2020-07-01 20:20:41)

Removed overly specific reference to Block storage
I found a specific reference to block storage in code shared between file and block. reworded it to refer to either block or storage volumes


Patch:
diff --git a/SoftLayer/managers/storage.py b/SoftLayer/managers/storage.py
index 9a8015d5..fb5190d8 100644
--- a/SoftLayer/managers/storage.py
+++ b/SoftLayer/managers/storage.py
@@ -396,7 +396,7 @@ def failback_from_replicant(self, volume_id):
         return self.client.call('Network_Storage', 'failbackFromReplicant', id=volume_id)
 
     def cancel_volume(self, volume_id, reason='No longer needed', immediate=False):
-        """Cancels the given block storage volume.
+        """Cancels the given storage volume.
 
         :param integer volume_id: The volume ID
         :param string reason: The reason for cancellation
@@ -406,7 +406,7 @@ def cancel_volume(self, volume_id, reason='No longer needed', immediate=False):
         volume = self.get_volume_details(volume_id, mask=object_mask)
 
         if 'billingItem' not in volume:
-            raise exceptions.SoftLayerError("Block Storage was already cancelled")
+            raise exceptions.SoftLayerError("Storage Volume was already cancelled")
 
         billing_item_id = volume['billingItem']['id']
 


Test patch:
diff --git a/tests/managers/block_tests.py b/tests/managers/block_tests.py
index c9731a04..1ba64423 100644
--- a/tests/managers/block_tests.py
+++ b/tests/managers/block_tests.py
@@ -61,7 +61,7 @@ def test_cancel_block_volume_exception_billing_item_not_found(self):
             immediate=True
         )
         self.assertEqual(
-            'Block Storage was already cancelled',
+            'Storage Volume was already cancelled',
             str(exception)
         )
Repository: softlayer/softlayer-python
Pull request #1625 (2022-04-26 21:24:55)

Unable to get VSI details when last TXN is "Software install is finis…
[#1622](https://github.com/softlayer/softlayer-python/issues/1622)



Patch:
diff --git a/SoftLayer/CLI/account/item_detail.py b/SoftLayer/CLI/account/item_detail.py
index 7aac9a96..ddc2d31e 100644
--- a/SoftLayer/CLI/account/item_detail.py
+++ b/SoftLayer/CLI/account/item_detail.py
@@ -28,7 +28,7 @@ def item_table(item):
     table.add_row(['cancellationDate', utils.clean_time(item.get('cancellationDate'), date_format, date_format)])
     table.add_row(['description', item.get('description')])
     table.align = 'l'
-    fqdn = "{}.{}".format(item.get('hostName', ''), item.get('domainName', ''))
+    fqdn = "{}.{}".format(item.get('hostName'), item.get('domain'))
     if fqdn != ".":
         table.add_row(['FQDN', fqdn])
 
diff --git a/SoftLayer/CLI/virt/detail.py b/SoftLayer/CLI/virt/detail.py
index ac9453dd..94b37f74 100644
--- a/SoftLayer/CLI/virt/detail.py
+++ b/SoftLayer/CLI/virt/detail.py
@@ -69,11 +69,13 @@ def cli(env, identifier, passwords=False, price=False):
     table.add_row(['transient', result.get('transientGuestFlag', False)])
     table.add_row(['created', result['createDate']])
     table.add_row(['modified', result['modifyDate']])
-    last_transaction = "{} ({})".format(utils.lookup(result, 'lastTransaction', 'transactionGroup', 'name'),
-                                        utils.clean_time(utils.lookup(result, 'lastTransaction', 'modifyDate')))
+    last_transaction = ''
+    if result.get('lastTransaction'):
+        last_transaction = "{} ({})".format(utils.lookup(result, 'lastTransaction', 'transactionGroup', 'name'),
+                                            utils.clean_time(utils.lookup(result, 'lastTransaction', 'modifyDate')))
 
     table.add_row(['last_transaction', last_transaction])
-    table.add_row(['billing', 'Hourly' if result['hourlyBillingFlag'] else'Monthly'])
+    table.add_row(['billing', 'Hourly' if result['hourlyBillingFlag'] else 'Monthly'])
     table.add_row(['preset', utils.lookup(result, 'billingItem',
                                           'orderItem',
                                           'preset',


Test patch:
diff --git a/tests/CLI/modules/vs/vs_tests.py b/tests/CLI/modules/vs/vs_tests.py
index 99fafc0b..f5621256 100644
--- a/tests/CLI/modules/vs/vs_tests.py
+++ b/tests/CLI/modules/vs/vs_tests.py
@@ -947,3 +947,13 @@ def test_authorize_volume_and_portable_storage_vs(self):
     def test_monitoring_vs(self):
         result = self.run_command(['vs', 'monitoring', '1234'])
         self.assert_no_fail(result)
+
+    def test_last_transaction_empty(self):
+        vg_return = SoftLayer_Virtual_Guest.getObject
+        transaction = []
+
+        vg_return['lastTransaction'] = transaction
+        mock = self.set_mock('SoftLayer_Virtual_Guest', 'getObject')
+        mock.return_value = vg_return
+        result = self.run_command(['vs', 'detail', '100'])
+        self.assert_no_fail(result)
Repository: softlayer/softlayer-python
Pull request #1724 (2022-08-09 19:28:07)

slcli hardware reflash-firmware command does not display success message
Issue: https://github.com/softlayer/softlayer-python/issues/1723
Observations:  A success message was added
```
slcli hardware reflash-firmware 1532729
This will power off the server with id 1532729 and reflash device firmware. Continue? [y/N]: y
Successfully device firmware reflashed

```


Patch:
diff --git a/SoftLayer/CLI/hardware/reflash_firmware.py b/SoftLayer/CLI/hardware/reflash_firmware.py
index d04f93ed..89d99285 100644
--- a/SoftLayer/CLI/hardware/reflash_firmware.py
+++ b/SoftLayer/CLI/hardware/reflash_firmware.py
@@ -23,4 +23,5 @@ def cli(env, identifier):
                                'reflash device firmware. Continue?' % hw_id)):
         raise exceptions.CLIAbort('Aborted.')
 
-    mgr.reflash_firmware(hw_id)
+    if mgr.reflash_firmware(hw_id):
+        click.echo('Successfully device firmware reflashed')


Test patch:
diff --git a/tests/CLI/modules/server_tests.py b/tests/CLI/modules/server_tests.py
index cc30c70e..6af45ccf 100644
--- a/tests/CLI/modules/server_tests.py
+++ b/tests/CLI/modules/server_tests.py
@@ -523,7 +523,7 @@ def test_reflash_firmware(self, confirm_mock):
         result = self.run_command(['server', 'reflash-firmware', '1000'])
 
         self.assert_no_fail(result)
-        self.assertEqual(result.output, "")
+        self.assertEqual(result.output, 'Successfully device firmware reflashed\n')
         self.assert_called_with('SoftLayer_Hardware_Server',
                                 'createFirmwareReflashTransaction',
                                 args=((1, 1, 1)), identifier=1000)
Repository: softlayer/softlayer-python
Pull request #1769 (2022-10-14 20:31:41)

Delete twitter link in documentation
Issue: #1539 


Patch:
diff --git a/SoftLayer/CLI/virt/credentials.py b/SoftLayer/CLI/virt/credentials.py
index f64444ec..86c6909d 100644
--- a/SoftLayer/CLI/virt/credentials.py
+++ b/SoftLayer/CLI/virt/credentials.py
@@ -19,10 +19,7 @@ def cli(env, identifier):
     vs_id = helpers.resolve_id(vsi.resolve_ids, identifier, 'VS')
     instance = vsi.get_instance(vs_id)
 
-    table = formatting.Table(['username', 'password', 'Software', 'Version'])
-
+    table = formatting.Table(['username', 'password'])
     for item in instance['operatingSystem']['passwords']:
-        table.add_row([item['username'], item['password'],
-                       instance['operatingSystem']['softwareLicense']['softwareDescription']['referenceCode'],
-                       instance['operatingSystem']['softwareLicense']['softwareDescription']['version']])
+        table.add_row([item['username'], item['password']])
     env.fout(table)
diff --git a/SoftLayer/fixtures/SoftLayer_Virtual_Guest.py b/SoftLayer/fixtures/SoftLayer_Virtual_Guest.py
index aab22b5e..762b923a 100644
--- a/SoftLayer/fixtures/SoftLayer_Virtual_Guest.py
+++ b/SoftLayer/fixtures/SoftLayer_Virtual_Guest.py
@@ -75,7 +75,7 @@
         'passwords': [{'username': 'user', 'password': 'pass'}],
         'softwareLicense': {
             'softwareDescription': {'version': '12.04-64 Minimal for VSI',
-                                    'name': 'Ubuntu', 'referenceCode': 'UBUNTU_8_64', }}
+                                    'name': 'Ubuntu'}}
     },
     'softwareComponents': [{
         'passwords': [{'username': 'user', 'password': 'pass'}],
diff --git a/docs/dev/index.rst b/docs/dev/index.rst
index 9174186c..16207bd7 100644
--- a/docs/dev/index.rst
+++ b/docs/dev/index.rst
@@ -180,5 +180,4 @@ Developer Resources
    Issues <https://github.com/softlayer/softlayer-python/issues>
    Pull Requests <https://github.com/softlayer/softlayer-python/pulls>
    PyPI <https://pypi.python.org/pypi/softlayer/>
-   Twitter <https://twitter.com/SoftLayerDevs>
    #softlayer on freenode <irc://irc.freenode.net/#softlayer>


Test patch:
diff --git a/tests/CLI/modules/vs/vs_tests.py b/tests/CLI/modules/vs/vs_tests.py
index a4f80c38..46a0b994 100644
--- a/tests/CLI/modules/vs/vs_tests.py
+++ b/tests/CLI/modules/vs/vs_tests.py
@@ -904,10 +904,10 @@ def test_list_vsi(self):
     def test_credentail(self):
         result = self.run_command(['vs', 'credentials', '100'])
         self.assert_no_fail(result)
-        # self.assertEqual(json.loads(result.output), [{
-        #     "username": "user",
-        #     "password": "pass"
-        # }])
+        self.assertEqual(json.loads(result.output), [{
+            "username": "user",
+            "password": "pass"
+        }])
 
     @mock.patch('SoftLayer.CLI.formatting.confirm')
     def test_authorize_storage_vs_no_confirm(self, confirm_mock):