From f3c0a90b7e7bd3c81357606ae73502509bd29735 Mon Sep 17 00:00:00 2001 From: Konsta Vesterinen Date: Sat, 3 Aug 2013 18:03:08 +0300 Subject: [PATCH] Added some tests for batch_fetch --- tests/test_batch_fetch.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/test_batch_fetch.py diff --git a/tests/test_batch_fetch.py b/tests/test_batch_fetch.py new file mode 100644 index 0000000..0067943 --- /dev/null +++ b/tests/test_batch_fetch.py @@ -0,0 +1,34 @@ +from pytest import raises +from sqlalchemy_utils import batch_fetch +from tests import TestCase + + +class TestBatchFetch(TestCase): + def setup_method(self, method): + TestCase.setup_method(self, method) + category = self.Category(name=u'Category #1') + category.articles = [ + self.Article(name=u'Article 1'), + self.Article(name=u'Article 2') + ] + category2 = self.Category(name=u'Category #2') + category2.articles = [ + self.Article(name=u'Article 3'), + self.Article(name=u'Article 4'), + self.Article(name=u'Article 5') + ] + self.session.add(category) + self.session.add(category2) + self.session.commit() + + def test_raises_error_if_relationship_not_found(self): + categories = self.session.query(self.Category).all() + with raises(AttributeError): + batch_fetch(categories, 'unknown_relation') + + def test_supports_relationship_attributes(self): + categories = self.session.query(self.Category).all() + batch_fetch(categories, self.Category.articles) + query_count = self.connection.query_count + categories[0].articles # no lazy load should occur + assert self.connection.query_count == query_count