From ed836fa8f9f1c9b83317e6a84d5a4824fde27f56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com>
Date: Mon, 7 Nov 2011 16:38:01 +0100
Subject: [PATCH] Check that software instance reference can be resued.

This is skeleton intitation of work.
---
 .../product/Vifib/tests/testVifibSlapBug.py   | 54 +++++++++++++++++++
 .../tests/testVifibSlapOpenOrderRequest.py    | 16 ------
 .../Vifib/tests/testVifibSlapWebService.py    | 16 ++++++
 3 files changed, 70 insertions(+), 16 deletions(-)

diff --git a/master/product/Vifib/tests/testVifibSlapBug.py b/master/product/Vifib/tests/testVifibSlapBug.py
index 9503d43c5..27e550152 100644
--- a/master/product/Vifib/tests/testVifibSlapBug.py
+++ b/master/product/Vifib/tests/testVifibSlapBug.py
@@ -1125,6 +1125,60 @@ class TestVifibSlapBug(TestVifibSlapWebServiceMixin):
     sequence_list.addSequenceString(sequence_string)
     sequence_list.play(self)
 
+  def test_request_new_with_destroyed_reference(self):
+    """Prove that having destroyed SI allows to request new one with same
+      reference"""
+    sequence_list = SequenceList()
+    sequence_string = self.prepare_published_software_release + \
+      self.prepare_formated_computer + """
+      LoginTestVifibAdmin
+      RequestSoftwareInstallation
+      Tic
+      Logout
+
+      SlapLoginCurrentComputer
+      ComputerSoftwareReleaseAvailable
+      Tic
+      SlapLogout
+
+      SetRandomRequestedReference
+      SlapLoginTestVifibCustomer
+      PersonRequestSlapSoftwareInstancePrepare
+      Tic
+      SlapLogout
+
+      LoginDefaultUser
+      ConfirmOrderedSaleOrderActiveSense
+      Tic
+      Logout
+
+      SlapLoginTestVifibCustomer
+      PersonRequestSlapSoftwareInstance
+      Tic
+      SlapLogout
+
+      LoginDefaultUser
+      SetCurrentPersonSlapRequestedSoftwareInstance
+      CheckPersonRequestedSoftwareInstanceAndRelatedComputerPartition
+      SetSelectedComputerPartition
+      SetRequestedComputerPartition
+      CheckComputerPartitionNoInstanceHostingSalePackingList
+      CheckComputerPartitionInstanceSetupSalePackingListConfirmed
+      Logout
+      """
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self)
+
+    raise NotImplementedError
+
+  def test_request_new_with_destroyed_reference_web_ui(self):
+    """Prove that having destroyed SI allows to request new one with same
+      reference
+
+      Supports web UI case.
+      """
+    raise NotImplementedError
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestVifibSlapBug))
diff --git a/master/product/Vifib/tests/testVifibSlapOpenOrderRequest.py b/master/product/Vifib/tests/testVifibSlapOpenOrderRequest.py
index e4952d8bb..5529ebd88 100644
--- a/master/product/Vifib/tests/testVifibSlapOpenOrderRequest.py
+++ b/master/product/Vifib/tests/testVifibSlapOpenOrderRequest.py
@@ -9,22 +9,6 @@ class TestVifibSlapOpenOrderRequest(TestVifibSlapWebServiceMixin):
   # OpenOrder.request
   ########################################
 
-  def stepPersonRequestSlapSoftwareInstancePrepare(self, sequence,
-      **kw):
-    software_release = sequence['software_release_uri']
-    self.slap = slap.slap()
-    self.slap.initializeConnection(self.server_url, timeout=None)
-    open_order = self.slap.registerOpenOrder()
-    open_order.request(
-       software_release=software_release,
-       software_type=sequence.get('software_type', 'software_type'),
-       partition_reference=sequence.get('requested_reference',
-          'requested_reference'),
-       partition_parameter_kw=sequence.get('requested_parameter_dict', {}),
-       filter_kw=sequence.get('requested_filter_dict', {}),
-       state=sequence.get('requested_state')
-       )
-
   def test_person_request_ComputerPartition_filter_computer_guid(self):
     """Check that requesting with computer_guid in filter_kw works as
        expected in case of person request"""
diff --git a/master/product/Vifib/tests/testVifibSlapWebService.py b/master/product/Vifib/tests/testVifibSlapWebService.py
index 7e12bfff8..e8536b422 100644
--- a/master/product/Vifib/tests/testVifibSlapWebService.py
+++ b/master/product/Vifib/tests/testVifibSlapWebService.py
@@ -178,6 +178,22 @@ class TestVifibSlapWebServiceMixin(testVifibMixin):
   ########################################
   # Steps -- scenarios
   ########################################
+  def stepPersonRequestSlapSoftwareInstancePrepare(self, sequence,
+      **kw):
+    software_release = sequence['software_release_uri']
+    self.slap = slap.slap()
+    self.slap.initializeConnection(self.server_url, timeout=None)
+    open_order = self.slap.registerOpenOrder()
+    open_order.request(
+       software_release=software_release,
+       software_type=sequence.get('software_type', 'software_type'),
+       partition_reference=sequence.get('requested_reference',
+          'requested_reference'),
+       partition_parameter_kw=sequence.get('requested_parameter_dict', {}),
+       filter_kw=sequence.get('requested_filter_dict', {}),
+       state=sequence.get('requested_state')
+       )
+
   def stepPersonRequestSlapSoftwareInstance(self, sequence, **kw):
     software_release = sequence['software_release_uri']
     self.slap = slap.slap()
-- 
2.30.9