Skip to content

Commit 1d34cee

Browse files
committed
Enhancement: Rule manager method to get rules by list of keys
1 parent 75fd9ef commit 1d34cee

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

dynamic_rules/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ def get_by_group_object(self, obj):
2020
def get_by_key(self, group_object, key):
2121
return self.get_by_group_object(group_object).filter(key=key)
2222

23+
def get_by_keys(self, group_object, keys):
24+
return self.get_by_group_object(group_object).filter(key__in=keys)
25+
2326

2427
class Rule(models.Model):
2528
content_type = models.ForeignKey('contenttypes.ContentType')

dynamic_rules/tests/test_models.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,17 @@ def test_get_by_key_returns_get_by_group_object_filtered_by_key(self):
5353
group_obj_query.filter.assert_called_once_with(key=key)
5454
self.assertEqual(group_obj_query.filter.return_value, rules)
5555

56+
def test_get_by_keys_returns_get_by_group_object_filtered_by_list_of_keys(self):
57+
manager = mock.Mock(spec_set=models.RuleManager)
58+
group_obj_query = manager.get_by_group_object.return_value
59+
keys = ["abc", "def"]
60+
61+
rules = models.RuleManager.get_by_keys(manager, self.model_one, keys)
62+
63+
manager.get_by_group_object.assert_called_once_with(self.model_one)
64+
group_obj_query.filter.assert_called_once_with(key__in=keys)
65+
self.assertEqual(group_obj_query.filter.return_value, rules)
66+
5667

5768
class RuleModelTests(unittest.TestCase):
5869

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
setup(
88
name="django-dynamic-rules",
9-
version="1.0.1",
9+
version="1.0.2",
1010
author="IMT Computer Services",
1111
author_email="[email protected]",
1212
description="Allows you to create dynamic rules related to a particular model",

0 commit comments

Comments
 (0)