1
# -*- coding: utf-8 -*-
5
Created on 22 août 2011
15
class TestPoToSo(TestMSFMessage):
17
self.create_record(client_host, client_port, 'msf_c1', 'product.product',
19
self.create_record(client_host, client_port, 'msf_c1', 'res.partner',
21
'address' : [(0,0, {'name' : 'msf_c1'})]
23
self.create_record(client_host, client_port, 'msf_c2', 'res.partner',
25
'address' : [(0,0, {'name' : 'msf_c2'})]
27
self.synchronize(client_host, client_port, 'msf_c1')
28
self.synchronize(client_host, client_port, 'msf_c2')
29
self.synchronize(client_host, client_port, 'msf_c1')
35
po_name = 'PO%s' % uuid.uuid1().hex
36
self.create_po(client_host, client_port, 'msf_c1', 'msf_c2', po_name, 'A10')
37
self.synchronize(client_host, client_port, 'msf_c1')
38
self.synchronize(client_host, client_port, 'msf_c2')
39
self.check_model_data_like(client_host, client_port, 'msf_c2', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_c1.' + po_name })
43
class TestPoToSo2(TestMSFMessage):
46
self.create_record(client_host, client_port, 'msf_p2', 'product.product', {'name' : 'A11'})
47
self.create_record(client_host, client_port, 'msf_p2', 'product.product', {'name' : 'A12'})
48
self.create_record(client_host, client_port, 'msf_p2', 'res.partner',
51
'address' : [(0,0, {'name' : 'msf_p2'})]
53
self.synchronize(client_host, client_port, 'msf_p2')
54
self.synchronize(client_host, client_port, 'msf_c2')
58
po2_name = 'PO%s' % uuid.uuid1().hex
59
po3_name = 'PO%s' % uuid.uuid1().hex
60
self.create_po(client_host, client_port, 'msf_p2', 'msf_c2', po2_name, 'A11')
61
self.create_po(client_host, client_port, 'msf_p2', 'msf_c2', po3_name, 'A12')
62
self.synchronize(client_host, client_port, 'msf_p2')
63
self.synchronize(client_host, client_port, 'msf_c2')
64
self.check_model_data_like(client_host, client_port, 'msf_c2', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_p2.' + po2_name })
65
self.check_model_data_like(client_host, client_port, 'msf_c2', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_p2.' + po3_name })
68
class TestExternalSupplierPO(TestMSFMessage):
70
self.create_record(client_host, client_port, 'msf_c1', 'product.product', {'name' : 'A13'})
71
self.create_record(client_host, client_port, 'msf_p1', 'product.product', {'name' : 'A14'})
72
self.create_record(client_host, client_port, 'msf_c1', 'res.partner',
74
'name' : 'external_supplier1',
75
'address' : [(0,0, {'name' : 'external_supplier1'})]
77
self.create_record(client_host, client_port, 'msf_p1', 'res.partner',
79
'name' : 'external_supplier2',
80
'address' : [(0,0, {'name' : 'external_supplier2'})]
83
po4_name = 'PO%s' % uuid.uuid1().hex
84
po5_name = 'PO%s' % uuid.uuid1().hex
85
self.create_po(client_host, client_port, 'msf_c1', 'external_supplier1', po4_name, 'A13')
86
self.create_po(client_host, client_port, 'msf_p1', 'external_supplier2', po5_name, 'A14')
87
self.synchronize(client_host, client_port, 'msf_p1')
88
self.synchronize(client_host, client_port, 'msf_c1')
89
self.synchronize(client_host, client_port, 'msf_p1')
90
self.synchronize(client_host, client_port, 'msf_p2')
91
self.synchronize(client_host, client_port, 'msf_p3')
92
self.synchronize(client_host, client_port, 'msf_c2')
93
self.synchronize(client_host, client_port, 'msf_c3')
94
self.check_model_data_like(client_host, client_port, 'msf_p1', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_c1.' + po4_name }, False)
95
self.check_model_data_like(client_host, client_port, 'msf_p1', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_p1.' + po5_name }, False)
96
self.check_model_data_like(client_host, client_port, 'msf_p2', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_c1.' + po4_name }, False)
97
self.check_model_data_like(client_host, client_port, 'msf_p2', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_p1.' + po5_name }, False)
98
self.check_model_data_like(client_host, client_port, 'msf_p3', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_c1.' + po4_name }, False)
99
self.check_model_data_like(client_host, client_port, 'msf_p3', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_p1.' + po5_name }, False)
100
self.check_model_data_like(client_host, client_port, 'msf_c1', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_c1.' + po4_name }, False)
101
self.check_model_data_like(client_host, client_port, 'msf_c1', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_p1.' + po5_name }, False)
102
self.check_model_data_like(client_host, client_port, 'msf_c2', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_c1.' + po4_name }, False)
103
self.check_model_data_like(client_host, client_port, 'msf_c2', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_p1.' + po5_name }, False)
104
self.check_model_data_like(client_host, client_port, 'msf_c3', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_c1.' + po4_name }, False)
105
self.check_model_data_like(client_host, client_port, 'msf_c3', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_p1.' + po5_name }, False)
107
class TestExternalSupplierSO(TestMSFMessage):
109
self.create_record(client_host, client_port, 'msf_c1', 'res.partner',
111
'name' : 'external_supplier3',
112
'address' : [(0,0, {'name' : 'external_supplier3'})]
115
so4_name = 'SO%s' % uuid.uuid1().hex
116
self.create_so(client_host, client_port, 'msf_c1', 'external_supplier3', so4_name, 'A11')
117
self.synchronize(client_host, client_port, 'msf_c1')
118
self.synchronize(client_host, client_port, 'msf_p1')
119
self.synchronize(client_host, client_port, 'msf_p2')
120
self.synchronize(client_host, client_port, 'msf_p3')
121
self.synchronize(client_host, client_port, 'msf_c2')
122
self.synchronize(client_host, client_port, 'msf_c3')
123
self.check_model_data_like(client_host, client_port, 'msf_p1', 'purchase.order', {'name' : 'SO', 'partner_ref' : 'msf_p1.' + so4_name }, False)
124
self.check_model_data_like(client_host, client_port, 'msf_p1', 'purchase.order', {'name' : 'SO', 'partner_ref' : 'msf_p1.' + so4_name }, False)
125
self.check_model_data_like(client_host, client_port, 'msf_p1', 'purchase.order', {'name' : 'SO', 'partner_ref' : 'msf_p1.' + so4_name }, False)
126
self.check_model_data_like(client_host, client_port, 'msf_p1', 'purchase.order', {'name' : 'SO', 'partner_ref' : 'msf_p1.' + so4_name }, False)
127
self.check_model_data_like(client_host, client_port, 'msf_p1', 'purchase.order', {'name' : 'SO', 'partner_ref' : 'msf_p1.' + so4_name }, False)
128
self.check_model_data_like(client_host, client_port, 'msf_p1', 'purchase.order', {'name' : 'SO', 'partner_ref' : 'msf_p1.' + so4_name }, False)
129
self.check_model_data_like(client_host, client_port, 'msf_p1', 'purchase.order', {'name' : 'SO', 'partner_ref' : 'msf_p1.' + so4_name }, False)
132
class TestSoToPo(TestMSFMessage):
134
self.create_record(client_host, client_port, 'msf_c2', 'product.product', {'name' : 'A11'})
135
self.create_record(client_host, client_port, 'msf_p3', 'res.partner',
138
'address' : [(0,0, {'name' : 'msf_p3'})]
140
self.synchronize(client_host, client_port, 'msf_p3')
141
self.synchronize(client_host, client_port, 'msf_c2')
143
so5_name = 'SO%s' % uuid.uuid1().hex
144
self.create_so(client_host, client_port, 'msf_c2', 'msf_p3', so5_name, 'A11')
145
self.synchronize(client_host, client_port, 'msf_c2')
146
self.synchronize(client_host, client_port, 'msf_p3')
147
self.check_model_data_like(client_host, client_port, 'msf_p3', 'purchase.order', {'name' : 'PO', 'partner_ref' : 'msf_c2.' + so5_name })
149
class TestConfirmPo(TestMSFMessage):
151
self.po2_name = 'PO%s' % uuid.uuid1().hex
152
self.create_record(client_host, client_port, 'msf_p2', 'product.product', {'name' : 'B309'})
153
self.create_po(client_host, client_port, 'msf_p2', 'msf_c2', self.po2_name, 'B309')
154
self.synchronize(client_host, client_port, 'msf_p2')
155
self.synchronize(client_host, client_port, 'msf_c2')
158
self.check_model_data(client_host, client_port, 'msf_p2', 'purchase.order', {'name' : self.po2_name, 'state' : 'confirmed' })
159
self.confirm_so(client_host, client_port, 'msf_c2', 'msf_p2.' + self.po2_name)
160
self.synchronize(client_host, client_port, 'msf_c2')
161
self.synchronize(client_host, client_port, 'msf_p2')
162
self.check_model_data(client_host, client_port, 'msf_p2', 'purchase.order', {'name' : self.po2_name, 'state' : 'approved' })
165
class ShippementConfirmation(TestMSFMessage):
167
self.po2_name = 'PO%s' % uuid.uuid1().hex
168
self.create_record(client_host, client_port, 'msf_p2', 'product.product', {'name' : 'C4'})
169
self.create_po(client_host, client_port, 'msf_p2', 'msf_c2', self.po2_name, 'C4')
170
self.synchronize(client_host, client_port, 'msf_p2')
171
self.synchronize(client_host, client_port, 'msf_c2')
172
self.confirm_so(client_host, client_port, 'msf_c2', 'msf_p2.' + self.po2_name)
173
self.synchronize(client_host, client_port, 'msf_c2')
174
self.synchronize(client_host, client_port, 'msf_p2')
175
self.check_model_data(client_host, client_port, 'msf_p2', 'purchase.order', {'name' : self.po2_name, 'state' : 'approved' })
178
self.confirm_shippements(client_host, client_port, 'msf_c2', 'msf_p2.' + self.po2_name)
179
self.synchronize(client_host, client_port, 'msf_c2')
180
self.synchronize(client_host, client_port, 'msf_p2')
181
self.check_model_data(client_host, client_port, 'msf_p2', 'purchase.order', {'name' : self.po2_name, 'sended_by_supplier' : True })
182
self.confirm_incoming_shippements(client_host, client_port, 'msf_p2', self.po2_name)
183
self.synchronize(client_host, client_port, 'msf_p2')
184
self.synchronize(client_host, client_port, 'msf_c2')
185
self.check_model_data_like(client_host, client_port, 'msf_c2', 'sale.order', {'name' : 'SO', 'client_order_ref' : 'msf_p2.' + self.po2_name, 'received' : True })
189
if __name__ == '__main__':
190
test = unittest.TestSuite()
191
test.addTest(TestPoToSo())
192
test.addTest(TestPoToSo2())
193
test.addTest(TestExternalSupplierPO())
194
test.addTest(TestExternalSupplierSO())
195
test.addTest(TestSoToPo())
196
#Database has to be configured to execute this test
197
test.addTest(TestConfirmPo())
198
test.addTest(ShippementConfirmation())
199
runner = unittest.TextTestRunner(verbosity=2)
200
result = runner.run(test)