|
- from odoo.tests.common import TransactionCase
-
- class TestBook(TransactionCase):
- def setUp(self, *args, **kwargs):
- result = super().setUp(*args, **kwargs)
- user_admin = self.env.ref('base.user_admin')
- self.env = self.env(user=user_admin)
- self.Book = self.env['library.book']
- self.book_ode = self.Book.create({
- 'name': 'Odoo Development Essentials',
- 'isbn': '879-1-78439-279-6'})
- return result
- def test_create(self):
- "Test Books are active by default"
- self.assertEqual(self.book_ode.active, True)
- def test_check_isbn(self):
- "Check valid ISBN"
- self.assertTrue(self.book_ode._check_isbn)
- def _check_isbn(self):
- self.ensure_one()
- isbn = self.isbn.replace('-', '') # 为保持兼容性 Alan 自行添加
- digits = [int(x) for x in isbn if x.isdigit()]
- if len(digits) == 13:
- ponderations = [1, 3] * 6
- terms = [a * b for a,b in zip(digits[:13], ponderations)]
- remain = sum(terms) % 10
- check = 10 - remain if remain !=0 else 0
- return digits[-1] == check
|