Skip to content

Commit 3d86f35

Browse files
committed
[IMP] estate: added two test cases
1 parent 629a455 commit 3d86f35

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

estate/models/estate_property_offer.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ def create(self, vals_list):
6363
property_ids = [property['property_id'] for property in vals_list]
6464
Properties = self.env['estate.property'].browse(property_ids)
6565
for Property in Properties:
66+
if Property.state in ['Sold']:
67+
raise UserError("Can't create offers for an already sold property")
6668
if (Property.offer_ids):
6769
curr_lowest_offer = min(Property.offer_ids.mapped('price'))
6870
if float_compare(vals_list[0]['price'], curr_lowest_offer, 2) < 0:

estate/tests/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import test_estate_property
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
from odoo.tests.common import TransactionCase
2+
from odoo.exceptions import UserError
3+
from odoo.tests import tagged
4+
5+
6+
@tagged('post_install', '-at_install')
7+
class EstateTestCase(TransactionCase):
8+
9+
@classmethod
10+
def setUpClass(cls):
11+
super().setUpClass()
12+
13+
cls.properties = cls.env['estate.property'].create([{
14+
'name': 'property 1',
15+
'expected_price': 100,
16+
}])
17+
18+
cls.partner = cls.env['res.partner'].create([{
19+
'name': 'myCompany',
20+
}])
21+
22+
def test_sell_no_offer(self):
23+
Offer = self.env['estate.property.offer'].create([{
24+
'price': 92,
25+
'property_id': self.properties.id,
26+
'partner_id': self.partner.id,
27+
}])
28+
29+
self.properties.offer_ids = [Offer.id]
30+
31+
with self.assertRaises(UserError):
32+
self.properties.action_sold()
33+
34+
self.assertRecordValues(self.properties, [
35+
{'state': 'Offer Received'},
36+
])
37+
38+
def test_offer_sold_property(self):
39+
Offer = self.env['estate.property.offer'].create([{
40+
'price': 93,
41+
'property_id': self.properties.id,
42+
'partner_id': self.partner.id,
43+
}])
44+
45+
self.properties.offer_ids = [Offer.id]
46+
Offer.action_accept()
47+
self.properties.action_sold()
48+
49+
with self.assertRaises(UserError):
50+
self.env['estate.property.offer'].create([{
51+
'price': 94,
52+
'property_id': self.properties.id,
53+
'partner_id': self.partner.id,
54+
}])
55+
56+
self.assertEqual(len(self.properties.offer_ids), 1)

0 commit comments

Comments
 (0)