From ad3e8e49d072d8137c85c451db427d07e1301799 Mon Sep 17 00:00:00 2001
From: Tim Burke <tim.burke@gmail.com>
Date: Thu, 8 Apr 2021 17:16:05 -0700
Subject: [PATCH] Include storage policy when listing account with --long

Change-Id: Ibc2f9445b5a8e80cfb73d0706e20a7e4c62eec4a
---
 swiftclient/shell.py    |  5 +++--
 test/unit/test_shell.py | 20 ++++++++++++--------
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/swiftclient/shell.py b/swiftclient/shell.py
index cf90ffcf..18782720 100755
--- a/swiftclient/shell.py
+++ b/swiftclient/shell.py
@@ -550,10 +550,11 @@ def st_list(parser, args, output_manager, return_parser=False):
                         datestamp = strftime('%Y-%m-%d %H:%M:%S', utc)
                     except TypeError:
                         datestamp = '????-??-?? ??:??:??'
+                    storage_policy = meta.get('x-storage-policy', '???')
                     if not options['totals']:
                         output_manager.print_msg(
-                            "%12s %s %s %s", count, byte_str,
-                            datestamp, item_name)
+                            "%12s %s %s %-15s %s", count, byte_str,
+                            datestamp, storage_policy, item_name)
                 else:    # list container contents
                     subdir = item.get('subdir')
                     content_type = item.get('content_type')
diff --git a/test/unit/test_shell.py b/test/unit/test_shell.py
index 84dd681e..0cf2258d 100644
--- a/test/unit/test_shell.py
+++ b/test/unit/test_shell.py
@@ -467,6 +467,10 @@ class TestShell(unittest.TestCase):
             [None, [{'name': 'container', 'bytes': 0, 'count': 0}]],
             [None, []],
         ]
+        connection.return_value.head_container.return_value = {
+            'x-timestamp': '1617393213.49752',
+            'x-storage-policy': 'some-policy',
+        }
 
         argv = ["", "list", "--lh"]
         with CaptureOutput() as output:
@@ -475,10 +479,10 @@ class TestShell(unittest.TestCase):
                      mock.call(marker='container', prefix=None, headers={})]
             connection.return_value.get_account.assert_has_calls(calls)
 
-            self.assertEqual(
-                output.out,
-                '           0    0 1970-01-01 00:00:01 container\n'
-                '           0    0\n')
+        self.assertEqual(
+            output.out,
+            '           0    0 2021-04-02 19:53:33 some-policy     container\n'
+            '           0    0\n')
 
         # Now test again, this time without returning metadata
         connection.return_value.head_container.return_value = {}
@@ -496,10 +500,10 @@ class TestShell(unittest.TestCase):
                      mock.call(marker='container', prefix=None, headers={})]
             connection.return_value.get_account.assert_has_calls(calls)
 
-            self.assertEqual(
-                output.out,
-                '           0    0 ????-??-?? ??:??:?? container\n'
-                '           0    0\n')
+        self.assertEqual(
+            output.out,
+            '           0    0 ????-??-?? ??:??:?? ???             container\n'
+            '           0    0\n')
 
     def test_list_account_totals_error(self):
         # No --lh provided: expect info message about incorrect --totals use