Commit bcc1a6dc authored by Łukasz Nowak's avatar Łukasz Nowak

Merge remote-tracking branch 'origin/master' into performance-hack

parents b33d1740 a45fee14
......@@ -26,7 +26,7 @@
</item>
<item>
<key> <string>expression</string> </key>
<value> <string>python: context.getConnectionXml()</string> </value>
<value> <string>python: context.getConnectionXmlAsDict() or True</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -26,7 +26,7 @@
</item>
<item>
<key> <string>expression</string> </key>
<value> <string>python: context.getSlaXmlAsDict()</string> </value>
<value> <string>python: context.getSlaXmlAsDict() or True</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
408
\ No newline at end of file
409
\ No newline at end of file
......@@ -50,7 +50,8 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>sale_packing_list = state_change[\'object\']\n
<value> <string>from DateTime import DateTime\n
sale_packing_list = state_change[\'object\']\n
\n
setup_service_relative_url = sale_packing_list.portal_preferences.getPreferredInstanceSetupResource()\n
destroy_service_relative_url = sale_packing_list.portal_preferences.getPreferredInstanceCleanupResource()\n
......@@ -61,6 +62,7 @@ for sale_packing_list_line in sale_packing_list.contentValues(\n
# Slapgrid may be already handling this partition, so, create a destroy packing list\n
# Clone the Packing List\n
destroy_sale_packing_list = sale_packing_list.Base_createCloneDocument(batch_mode=1)\n
destroy_sale_packing_list.setStartDate(DateTime())\n
# Delete all sub object except line clone\n
destroy_sale_packing_list.deleteContent([x for x in destroy_sale_packing_list.contentIds() if x!=sale_packing_list_line.getId()])\n
# Update the remaining line\n
......
598
\ No newline at end of file
599
\ No newline at end of file
......@@ -6,7 +6,7 @@ from random import random
from slapos import slap
from zExceptions import Unauthorized
from DateTime import DateTime
from Products.ERP5Type.tests.backportUnittest import skip
from Products.ERP5Type.tests.backportUnittest import expectedFailure
class TestVifibDefaultUseCase(TestVifibSlapWebServiceMixin):
......@@ -386,25 +386,25 @@ class TestVifibDefaultUseCase(TestVifibSlapWebServiceMixin):
'planned',
sale_invoice.getSimulationState())
self.assertAlmostEquals(
0.836, sale_invoice.getTotalPrice(), 3)
0.0, sale_invoice.getTotalPrice(), 3)
# 1 invoice line is expected
invoice_line_list = sale_invoice.contentValues(
portal_type="Invoice Line")
self.assertEquals(2, len(invoice_line_list))
self.assertEquals(1, len(invoice_line_list))
service_line = [x for x in invoice_line_list \
if x.getResource() == 'service_module/vifib_instance_setup'][0]
subscription_line = [x for x in invoice_line_list \
if x.getResource() == 'service_module/vifib_instance_subscription'][0]
# subscription_line = [x for x in invoice_line_list \
# if x.getResource() == 'service_module/vifib_instance_subscription'][0]
self.assertEquals(True, service_line.hasPrice())
self.assertAlmostEquals(0, service_line.getPrice(), 3)
self.assertEquals(1, service_line.getQuantity())
self.assertEquals(True, subscription_line.hasPrice())
self.assertAlmostEquals(0.836, subscription_line.getPrice(), 3)
self.assertEquals(1, subscription_line.getQuantity())
# self.assertEquals(True, subscription_line.hasPrice())
# self.assertAlmostEquals(0.836, subscription_line.getPrice(), 3)
# self.assertEquals(1, subscription_line.getQuantity())
# 0 transaction line
transaction_line_list = sale_invoice.contentValues(
......@@ -962,6 +962,8 @@ class TestVifibDefaultUseCase(TestVifibSlapWebServiceMixin):
self.assertEquals('account_module/bank', sale_line.getSource())
self.assertEquals('account_module/bank', sale_line.getDestination())
@expectedFailure
# Hosting subscription is disabled, so scenarios are irrelevant
def test_default_use_case(self):
"""Test full default use case.
......@@ -1049,15 +1051,23 @@ class TestVifibDefaultUseCase(TestVifibSlapWebServiceMixin):
LoginWebUser \
CheckWaitingInvoice \
Tic \
PayRegistrationPayment \
Tic \
CheckPaidInvoice \
CheckNoNewPayment \
LoginERP5TypeTestCase \
CheckSiteConsistency \
Logout \
'
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
# PayRegistrationPayment \
# Tic \
# CheckPaidInvoice \
def stepCheckNoNewPayment(self, sequence, **kw):
"""
"""
self.assertEqual(None, self.portal.portal_catalog.getResultValue(
portal_type="Payment Transaction",
simulation_state="planned"))
def stepCheckComplexInvoice(self, sequence, **kw):
"""
......@@ -1240,6 +1250,8 @@ class TestVifibDefaultUseCase(TestVifibSlapWebServiceMixin):
self.assertEquals('account_module/bank', sale_line.getSource())
self.assertEquals('account_module/bank', sale_line.getDestination())
@expectedFailure
# Hosting subscription is disabled, so scenarios are irrelevant
def test_aggregated_use_case(self):
"""Test a more complex use case with many packing list agregated
"""
......
......@@ -4,6 +4,7 @@ from testVifibSlapWebService import TestVifibSlapWebServiceMixin
from Products.ERP5Type.DateUtils import getClosestDate
from DateTime import DateTime
from testVifibOpenOrderSimulation import generateTimeFrameList
from Products.ERP5Type.tests.backportUnittest import expectedFailure
class TestVifibInstanceHostingRelatedDocument(TestVifibSlapWebServiceMixin):
......@@ -550,6 +551,8 @@ class TestVifibInstanceHostingRelatedDocument(TestVifibSlapWebServiceMixin):
uid=sequence['invoice_uid'])
invoice.setStartDate(getClosestDate(target_date=DateTime())-1)
@expectedFailure
# Subscription deliveries are not build for now.
def test_OpenOrder_sale_packing_list(self):
"""
Check that sale_packing_list is generated properly from simulation
......
......@@ -2,6 +2,7 @@ import unittest
from Products.ERP5Type.tests.Sequence import SequenceList
from Products.ERP5Type.DateUtils import getClosestDate, addToDate
from testVifibSlapWebService import TestVifibSlapWebServiceMixin
from Products.ERP5Type.tests.backportUnittest import expectedFailure
from DateTime.DateTime import DateTime
......@@ -186,6 +187,8 @@ class TestVifibOpenOrderSimulation(TestVifibSlapWebServiceMixin):
self.assertEquals(3,
len(simulation_movement_list))
@expectedFailure
# Subscription deliveries are not build for now.
def test_OpenOrder_request_changeSoftwareType(self):
"""
Check that requesting the same instance with a different software type
......
......@@ -3,6 +3,7 @@ from Products.ERP5Type.tests.backportUnittest import skip
import transaction
import unittest
from testVifibSlapWebService import TestVifibSlapWebServiceMixin
from Products.DCWorkflow.DCWorkflow import ValidationFailed
class TestVifibSlapComputerGetComputerPartitionList(TestVifibSlapWebServiceMixin):
########################################
......@@ -690,11 +691,28 @@ class TestVifibSlapComputerGetComputerPartitionList(TestVifibSlapWebServiceMixin
def stepDamageSoftwareInstanceXml(self, sequence, **kw):
software_instance = self.portal.portal_catalog.getResultValue(
uid=sequence['software_instance_uid'])
software_instance.edit(text_content="""
DAMAGED<BAD?xml XMLversion="1.0" encoding="utf-8"?>""")
self.assertRaises(ValidationFailed, software_instance.edit,
text_content="""DAMAGED<BAD?xml XMLversion="1.0" encoding="utf-8"?>""")
def stepCheckDamageSoftwareInstanceSiteConsistency(self, sequence, **kw):
software_instance = self.portal.portal_catalog.getResultValue(
uid=sequence['software_instance_uid'])
self.portal.portal_alarms.vifib_check_consistency.activeSense()
transaction.commit()
self.tic()
consistency_error_list = self.portal.portal_alarms.vifib_check_consistency\
.Alarm_getConsistencyCheckReportLineList()
self.assertEqual(1, len(consistency_error_list))
consistency_error = consistency_error_list[0]
self.assertEqual(consistency_error.getObject().getPath(),
software_instance.getPath())
self.assertTrue('Sla XML is invalid' in str(consistency_error.getMessage()))
self.assertTrue(self.portal.portal_alarms.vifib_check_consistency.sense())
self.checkDivergency()
def test_Computer_getComputerPartitionList_damaged_xml(self):
"""Check that getComputerPartitionList works in case of damaged XML on instance."""
"""Check that getComputerPartitionList works in case of trying to damag XML,
which is refused."""
sequence_list = SequenceList()
sequence_string = self\
.prepare_install_requested_computer_partition_sequence_string + """
......@@ -728,7 +746,7 @@ class TestVifibSlapComputerGetComputerPartitionList(TestVifibSlapWebServiceMixin
SlapLogout
LoginERP5TypeTestCase
CheckSiteConsistency
CheckDamageSoftwareInstanceSiteConsistency
Logout
"""
sequence_list.addSequenceString(sequence_string)
......
......@@ -2,6 +2,7 @@ from Products.ERP5Type.tests.Sequence import SequenceList
import unittest
from testVifibSlapWebService import TestVifibSlapWebServiceMixin
from zExceptions import Unauthorized
from Products.ERP5Type.tests.backportUnittest import expectedFailure
class TestVifibSlapComputerPartitionLock(TestVifibSlapWebServiceMixin):
......@@ -47,6 +48,8 @@ class TestVifibSlapComputerPartitionLock(TestVifibSlapWebServiceMixin):
portal_type=self.sale_packing_list_line_portal_type)]
self.assertEqual(0, len(delivery_line_list))
@expectedFailure
# Balance check is disabled so test is irrelevant
def test_negative_person_balance_request(self):
"""Locked person can not request
"""
......@@ -74,6 +77,8 @@ class TestVifibSlapComputerPartitionLock(TestVifibSlapWebServiceMixin):
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
@expectedFailure
# Balance check is disabled so test is irrelevant
def test_negative_person_balance_request_slave(self):
"""Locked person can not request
"""
......
......@@ -28,6 +28,7 @@
##############################################################################
import unittest
from VifibMixin import testVifibMixin
from Products.ERP5Type.tests.backportUnittest import expectedFailure
HTTP_OK = 200
MOVED_TEMPORARILY = 302
......@@ -70,6 +71,7 @@ class TestVifibWebSite(testVifibMixin):
response.getHeader('content-type'))
self.assertTrue("Website is under construction..." in response.getBody())
@expectedFailure
def test_04_checkHostingAccess(self):
"""
Test Hosting Access
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment