Source code for oca.tests.test_helpers_foreach

# -*- coding: utf-8 -*-
# Copyright 2016-2017 LasLabs Inc.
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

import unittest

from .. import decorators
from .common import TestRecordset


[docs]class ForeachRecordset(TestRecordset):
[docs] @decorators.foreach(list) def decorated_method_list(self): return self
[docs] @decorators.foreach() def decorated_method_none(self): return
[docs] @decorators.foreach() def decorated_method_none_return(self): return self
[docs]class TestHelpersForeach(unittest.TestCase):
[docs] def setUp(self): self.record = ForeachRecordset() super(TestHelpersForeach, self).setUp()
[docs] def test_foreach_list(self): """ It should iterate and return list of method results. """ res = self.record.decorated_method_list() self.assertEqual( res, ForeachRecordset.records, )
[docs] def test_foreach_none(self): """ It should call the method but return nothing. """ res = self.record.decorated_method_none() self.assertIs(res, None)
[docs] def test_foreach_none_return(self): """ It should raise a ValueError if the method returns data. """ with self.assertRaises(AssertionError): self.record.decorated_method_none_return()