GoodERP
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

117 rindas
4.3KB

  1. # Copyright 2016 上海开阖软件有限公司 (http://www.osbzr.com)
  2. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  3. from odoo.tests.common import TransactionCase
  4. from odoo.exceptions import UserError
  5. from datetime import datetime
  6. class TestTask(TransactionCase):
  7. def setUp(self):
  8. super(TestTask, self).setUp()
  9. self.task = self.env.ref('task.task_sell')
  10. self.project_id = self.env.ref('task.project_gooderp')
  11. self.status = self.env.ref('task.task_status_doing')
  12. def test_compute_hours(self):
  13. '''计算任务的实际时间'''
  14. self.assertTrue(self.task.hours == 1)
  15. def test_assign_to_me(self):
  16. '''将任务指派给自己,并修改状态'''
  17. self.task.assign_to_me()
  18. self.assertTrue(self.task.user_id == self.env.ref('base.user_root'))
  19. self.assertTrue(self.task.status == self.status)
  20. def test_default_status(self):
  21. '''创建任务时,任务阶段默认为doing状态的阶段'''
  22. new_task = self.env['task'].create({
  23. 'name': '测试创建任务时任务阶段的默认值',
  24. 'project_id': self.project_id.id,
  25. })
  26. self.assertTrue(new_task.status == self.env.ref('task.task_status_todo'))
  27. class TestTimesheet(TransactionCase):
  28. def setUp(self):
  29. super(TestTimesheet, self).setUp()
  30. self.timesheet = self.env.ref('task.timesheet_20161110')
  31. def test_name_get(self):
  32. '''测试今日工作日志的name_get'''
  33. name = self.timesheet.name_get()
  34. real_name = '%s %s' % (self.env.ref(
  35. 'base.user_admin').name, '2016-11-10')
  36. self.assertEqual(name[0][1], real_name)
  37. class TestTimeline(TransactionCase):
  38. def setUp(self):
  39. super(TestTimeline, self).setUp()
  40. self.task = self.env.ref('task.task_sell')
  41. self.status_doing = self.env.ref('task.task_status_doing')
  42. def test_create(self):
  43. '''创建工作记录时应更新对应task的status等字段'''
  44. timeline = self.env['timeline'].create({
  45. 'task_id': self.task.id,
  46. 'just_done': '创建一个销售订单',
  47. 'next_action': '测试其他内容',
  48. 'next_datetime': (datetime.now()).strftime('%Y-%m-%d %H:%M:%S'),
  49. 'set_status': self.status_doing.id,
  50. 'user_id': self.env.ref('base.user_root').id,
  51. })
  52. self.assertEqual(self.task.status, self.status_doing)
  53. self.assertEqual(self.task.next_action, timeline.next_action)
  54. self.assertEqual(self.task.next_datetime, timeline.next_datetime)
  55. self.assertEqual(self.task.user_id, timeline.user_id)
  56. class TestProjectInvoice(TransactionCase):
  57. def setUp(self):
  58. super(TestProjectInvoice, self).setUp()
  59. self.project = self.env.ref('task.project_gooderp')
  60. self.invoice1 = self.env.ref('task.project_invoice_1')
  61. def test_compute_tax_amount(self):
  62. '''计算税额'''
  63. self.assertTrue(self.invoice1.tax_amount == 17.0)
  64. def test_compute_tax_amount_wrong_tax_rate(self):
  65. '''输入错误税率,应报错'''
  66. with self.assertRaises(UserError):
  67. self.invoice1.tax_rate = -1
  68. self.invoice1._compute_tax_amount() # 不调用此方法,测试中UserError报不出来
  69. with self.assertRaises(UserError):
  70. self.invoice1.tax_rate = 102
  71. self.invoice1._compute_tax_amount()
  72. def test_make_invoice(self):
  73. '''生成结算单'''
  74. # 不输入客户点击生成发票按钮时应报错
  75. with self.assertRaises(UserError):
  76. self.invoice1.make_invoice()
  77. # 输入客户产生结算单,验证如下
  78. self.invoice1.project_id.customer_id = self.env.ref('core.jd')
  79. invoice = self.invoice1.make_invoice()
  80. self.assertTrue(self.invoice1.invoice_id == invoice)
  81. self.assertTrue(self.invoice1.project_id.auxiliary_id ==
  82. invoice.auxiliary_id)
  83. self.assertTrue(self.invoice1.tax_amount == invoice.tax_amount)
  84. self.assertTrue(self.invoice1.amount == invoice.amount)
  85. class TestProject(TransactionCase):
  86. def setUp(self):
  87. super(TestProject, self).setUp()
  88. self.project_id = self.env.ref('task.project_gooderp')
  89. def test_compute_hours(self):
  90. '''计算项目的实际工时'''
  91. self.assertTrue(self.project_id.hours == 1)
上海开阖软件有限公司 沪ICP备12045867号-1