'test the block and value matches help functions'

def test_matching(self):

    self.assertTrue(modulestore()._value_matches('help', 'help'))
    self.assertFalse(modulestore()._value_matches('help', 'Help'))
    self.assertTrue(modulestore()._value_matches(['distract', 'help', 'notme'], 'help'))
    self.assertFalse(modulestore()._value_matches(['distract', 'Help', 'notme'], 'help'))
    self.assertFalse(modulestore()._block_matches({'field': ['distract', 'Help', 'notme']}, {'field': 'help'}))
    self.assertTrue(modulestore()._block_matches({'field': ['distract', 'help', 'notme'], 'irrelevant': 2}, {'field': 'help'}))
    self.assertTrue(modulestore()._value_matches('I    need    some    help', re.compile('help')))
    self.assertTrue(modulestore()._value_matches(['I    need    some    help', 'today'], re.compile('help')))
    self.assertFalse(modulestore()._value_matches('I    need    some    help', re.compile('Help')))
    self.assertTrue(modulestore()._value_matches(['I    need    some    help', 'today'], re.compile('Help', re.IGNORECASE)))
    self.assertTrue(modulestore()._value_matches('gotcha', {'$in': ['a', 'bunch', 'of', 'gotcha']}))
    self.assertFalse(modulestore()._value_matches('gotcha', {'$in': ['a', 'bunch', 'of', 'gotchas']}))
    self.assertFalse(modulestore()._value_matches('gotcha', {'$nin': ['a', 'bunch', 'of', 'gotcha']}))
    self.assertTrue(modulestore()._value_matches('gotcha', {'$nin': ['a', 'bunch', 'of', 'gotchas']}))
    self.assertTrue(modulestore()._block_matches({'group_access': {'1': [1]}}, {'group_access': {'$exists': True}}))
    self.assertTrue(modulestore()._block_matches({'a': 1, 'b': 2}, {'group_access': {'$exists': False}}))
    self.assertTrue(modulestore()._block_matches({'a': 1, 'group_access': {'1': [1]}}, {'a': 1, 'group_access': {'$exists': True}}))
    self.assertFalse(modulestore()._block_matches({'a': 1, 'group_access': {'1': [1]}}, {'a': 111, 'group_access': {'$exists': True}}))
    self.assertTrue(modulestore()._block_matches({'a': 1, 'b': 2}, {'a': 1, 'group_access': {'$exists': False}}))
    self.assertFalse(modulestore()._block_matches({'a': 1, 'b': 2}, {'a': 9, 'group_access': {'$exists': False}}))
    self.assertTrue(modulestore()._block_matches({'a': 1, 'b': 2}, {'a': 1}))
    self.assertFalse(modulestore()._block_matches({'a': 1, 'b': 2}, {'a': 2}))
    self.assertFalse(modulestore()._block_matches({'a': 1, 'b': 2}, {'c': 1}))
    self.assertFalse(modulestore()._block_matches({'a': 1, 'b': 2}, {'a': 1, 'c': 1}))
    self.assertTrue(modulestore()._block_matches({'a': 1, 'b': 2}, {'a': (lambda i: (0 < i < 2))}))
