def get_wrappers(self, url=u'%', field=u'%'): """ Gets all the wrappers from a given collection. """ url = unicode(url) field = unicode(field) collection = self.find_wrapper_collection(url, field) if not collection: return [] rule_factory = RuleFactory() wrappers = [] for m_wrapper in collection.wrappers: wrapper = Wrapper() wrapper.id = m_wrapper.id wrapper.upvotes = m_wrapper.upvotes wrapper.downvotes = m_wrapper.downvotes for rule in m_wrapper.rules: pattern = simplejson.loads(str(rule.pattern)) r_rule = rule_factory.create_rule(rule.rule_type, pattern) if r_rule: wrapper.add_rule(r_rule) wrappers.append(wrapper) return wrappers
def test_persist_and_update_wrapper(self): wrapper = Wrapper() wrapper.add_rule(MockRule01(33)) wrapper.add_rule(MockRule01(55)) wrapper.add_rule(MockRule02([1, [2, 3, 4, 5], 6])) self.wm.persist_wrapper(u'concrete_url', u'concrete_field', wrapper) # Get wrappers wrappers = self.wm.get_wrappers(u'concrete_url', u'concrete_field') self.failUnless(len(wrappers) == 1) # Update wrapper wrapper = wrappers[0] wrapper.upvotes += 1 wrapper.downvotes -= 1 self.wm.update_wrapper(wrapper) # Get the wrapper again wrappers = self.wm.get_wrappers(u'concrete_url', u'concrete_field') self.failUnless(len(wrappers) == 1) self.failUnless(wrappers[0].upvotes == 1) self.failUnless(wrappers[0].downvotes == -1) # Update wrapper rules wrapper = wrappers[0] wrapper.rules[0].pattern = 223 wrapper.rules[2].pattern = [1, 6] self.wm.update_wrapper(wrapper) # Get the wrapper again wrappers = self.wm.get_wrappers(u'concrete_url', u'concrete_field') self.failUnless(len(wrappers) == 1) self.failUnless(wrappers[0].rules[0].pattern == 223) self.failUnless(wrappers[0].rules[2].pattern == [1, 6]) # Add another wrapper rule wrapper = wrappers[0] wrapper.rules.append(MockRule02([2, 3, 4, 5])) self.wm.update_wrapper(wrapper) # Get the wrapper again wrappers = self.wm.get_wrappers(u'concrete_url', u'concrete_field') self.failUnless(len(wrappers) == 1) self.failUnless(len(wrappers[0].rules) == 4) self.failUnless(wrappers[0].rules[3].pattern == [2, 3, 4, 5])
def test_persist_and_update_wrapper(self): wrapper = Wrapper() wrapper.add_rule(MockRule01(33)) wrapper.add_rule(MockRule01(55)) wrapper.add_rule(MockRule02([1, [2, 3, 4, 5], 6])) self.wm.persist_wrapper(u'concrete_url', u'concrete_field', wrapper) # Get wrappers wrappers = self.wm.get_wrappers(u'concrete_url', u'concrete_field') self.failUnless(len(wrappers) == 1) # Update wrapper wrapper = wrappers[0] wrapper.upvotes += 1 wrapper.downvotes -= 1 self.wm.update_wrapper(wrapper) # Get the wrapper again wrappers = self.wm.get_wrappers(u'concrete_url', u'concrete_field') self.failUnless(len(wrappers) == 1) self.failUnless(wrappers[0].upvotes == 1) self.failUnless(wrappers[0].downvotes == -1) # Update wrapper rules wrapper = wrappers[0] wrapper.rules[0].pattern = 223 wrapper.rules[2].pattern = [1, 6] self.wm.update_wrapper(wrapper) # Get the wrapper again wrappers = self.wm.get_wrappers(u'concrete_url', u'concrete_field') self.failUnless(len(wrappers) == 1) self.failUnless(wrappers[0].rules[0].pattern == 223) self.failUnless(wrappers[0].rules[2].pattern == [1, 6]) # Add another wrapper rule wrapper = wrappers[0] wrapper.rules.append(MockRule02([2, 3, 4, 5])) self.wm.update_wrapper(wrapper) # Get the wrapper again wrappers = self.wm.get_wrappers(u'concrete_url', u'concrete_field') self.failUnless(len(wrappers) == 1) self.failUnless(len(wrappers[0].rules) == 4) self.failUnless(wrappers[0].rules[3].pattern == [2, 3, 4, 5])
def xtest_persist_and_get_wrapper(self): wrapper = Wrapper() wrapper.add_rule(MockRule01(33)) wrapper.add_rule(MockRule01(55)) wrapper.add_rule(MockRule02([1, [2, 3, 4, 5], 6])) self.wm.persist_wrapper(u'some_url', u'some_field', wrapper) wrapper = Wrapper() wrapper.add_rule(MockRule01(66)) wrapper.add_rule(MockRule01(77)) wrapper.add_rule(MockRule02([[2, 3, 4, 5], 4])) self.wm.persist_wrapper(u'some_url', u'some_field', wrapper) wrapper = Wrapper() wrapper.add_rule(MockRule01(11)) wrapper.add_rule(MockRule01(22)) wrapper.add_rule(MockRule01(33)) self.wm.persist_wrapper(u'some_url', u'some_other_field', wrapper) # Get non-existent wrapper wrappers = self.wm.get_wrappers(u'some_url', u'non_existent_field') self.failIf(wrappers, 'Get non-existent wrapper') # Get wrappers wrappers = self.wm.get_wrappers(u'some_url', u'some_field') self.failUnless(len(wrappers) == 2) wrappers = self.wm.get_wrappers(u'some_url', u'some_other_field') self.failUnless(len(wrappers) == 1)
def xtest_persist_wrapper_with_incorrect_rules(self): wrapper = Wrapper() wrapper.add_rule(MockRule01(MockRule02(33))) self.failUnlessRaises(TypeError, self.wm.persist_wrapper, u'some_url', u'some_field', wrapper)
def xtest_persist_and_get_wrapper(self): wrapper = Wrapper() wrapper.add_rule(MockRule01(33)) wrapper.add_rule(MockRule01(55)) wrapper.add_rule(MockRule02([1, [2, 3, 4, 5], 6])) self.wm.persist_wrapper(u'some_url', u'some_field', wrapper) wrapper = Wrapper() wrapper.add_rule(MockRule01(66)) wrapper.add_rule(MockRule01(77)) wrapper.add_rule(MockRule02([[2, 3, 4, 5], 4])) self.wm.persist_wrapper(u'some_url', u'some_field', wrapper) wrapper = Wrapper() wrapper.add_rule(MockRule01(11)) wrapper.add_rule(MockRule01(22)) wrapper.add_rule(MockRule01(33)) self.wm.persist_wrapper(u'some_url', u'some_other_field', wrapper) # Get non-existent wrapper wrappers = self.wm.get_wrappers(u'some_url', u'non_existent_field') self.failIf(wrappers, 'Get non-existent wrapper') # Get wrappers wrappers = self.wm.get_wrappers(u'some_url', u'some_field') self.failUnless(len(wrappers) == 2) wrappers = self.wm.get_wrappers(u'some_url', u'some_other_field') self.failUnless(len(wrappers) == 1)
def xtest_persist_wrapper_with_incorrect_rules(self): wrapper = Wrapper() wrapper.add_rule(MockRule01(MockRule02(33))) self.failUnlessRaises(TypeError, self.wm.persist_wrapper, u'some_url', u'some_field', wrapper)