From b4660fec7dc1e1df53268e45e905d63f558cc383 Mon Sep 17 00:00:00 2001
From: Tang Chen <tangchen@cn.fujitsu.com>
Date: Tue, 8 Dec 2015 19:10:46 +0800
Subject: [PATCH] TestServerGeneral: Add test for
 _format_servers_list_networks()

The items in a dict are in random order. So if a server is in two networks,
there may be two results after formatted.

Change-Id: I2e15d202639e3fff427935f46650a405b0e51bcc
Implements: blueprint osc-unit-test-framework-improvement
---
 .../tests/compute/v2/test_server.py           | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py
index 00ced0e326..fb2fc23d98 100644
--- a/openstackclient/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/compute/v2/test_server.py
@@ -1136,3 +1136,27 @@ class TestServerGeneral(testtools.TestCase):
                          server._format_servers_list_power_state(0x07))
         self.assertEqual("N/A",
                          server._format_servers_list_power_state(0x08))
+
+    def test_format_servers_list_networks(self):
+        # Setup network info to test.
+        networks = {
+            u'public': [u'10.20.30.40', u'2001:db8::f'],
+            u'private': [u'2001:db8::f', u'10.20.30.40'],
+        }
+
+        # Prepare expected data.
+        # Since networks is a dict, whose items are in random order, there
+        # could be two results after formatted.
+        data_1 = (u'private=2001:db8::f, 10.20.30.40; '
+                  u'public=10.20.30.40, 2001:db8::f')
+        data_2 = (u'public=10.20.30.40, 2001:db8::f; '
+                  u'private=2001:db8::f, 10.20.30.40')
+
+        # Call _format_servers_list_networks().
+        networks_format = server._format_servers_list_networks(networks)
+
+        msg = ('Network string is not formatted correctly.\n'
+               'reference = %s or %s\n'
+               'actual    = %s\n' %
+               (data_1, data_2, networks_format))
+        self.assertIn(networks_format, (data_1, data_2), msg)