예제 #1
0
파일: core.py 프로젝트: ometra/reclass
    def _get_class_mappings_entity(self, entity):
        if not self._class_mappings:
            return Entity(self._settings, name='empty (class mappings)')
        c = Classes()
        if self._settings.class_mappings_match_path:
            matchname = entity.pathname
        else:
            matchname = entity.name
        for mapping in self._class_mappings:
            matched = False
            key, klasses = Core._shlex_split(mapping)
            if key[0] == ('/'):
                matched = Core._match_regexp(key[1:-1], matchname)
                if matched:
                    for klass in klasses:
                        c.append_if_new(matched.expand(klass))

            else:
                if Core._match_glob(key, matchname):
                    for klass in klasses:
                        c.append_if_new(klass)

        return Entity(self._settings,
                      classes=c,
                      name='class mappings for node {0}'.format(entity.name))
예제 #2
0
파일: core.py 프로젝트: halfss/reclass
    def _populate_with_class_mappings(self, nodename):
        if not self._class_mappings:
            return Entity(name="empty")
        c = Classes()
        for mapping in self._class_mappings:
            matched = False
            key, klasses = Core._shlex_split(mapping)
            if key[0] == ("/"):
                matched = Core._match_regexp(key[1:-1], nodename)
                if matched:
                    for klass in klasses:
                        c.append_if_new(matched.expand(klass))

            else:
                if Core._match_glob(key, nodename):
                    for klass in klasses:
                        c.append_if_new(klass)

        return Entity(classes=c, name="class mappings for node {0}".format(nodename))
예제 #3
0
파일: core.py 프로젝트: ChunHungLiu/reclass
    def _get_class_mappings_entity(self, nodename):
        if not self._class_mappings:
            return Entity(name='empty (class mappings)')
        c = Classes()
        for mapping in self._class_mappings:
            matched = False
            key, klasses = Core._shlex_split(mapping)
            if key[0] == ('/'):
                matched = Core._match_regexp(key[1:-1], nodename)
                if matched:
                    for klass in klasses:
                        c.append_if_new(matched.expand(klass))

            else:
                if Core._match_glob(key, nodename):
                    for klass in klasses:
                        c.append_if_new(klass)

        return Entity(classes=c,
                      name='class mappings for node {0}'.format(nodename))
예제 #4
0
파일: core.py 프로젝트: solarnz/reclass
    def _populate_with_class_mappings(self, nodename):
        if not self._class_mappings:
            return Entity(name='empty')
        c = Classes()
        for mapping in self._class_mappings:
            matched = False
            key, klasses = Core._shlex_split(mapping)
            if key[0] == ('/'):
                matched = Core._match_regexp(key[1:-1], nodename)
                if matched:
                    for klass in klasses:
                        c.append_if_new(matched.expand(klass))

            else:
                if Core._match_glob(key, nodename):
                    for klass in klasses:
                        c.append_if_new(klass)

        return Entity(classes=c,
                      name='class mappings for node {0}'.format(nodename))
예제 #5
0
 def test_append_if_new_nonstring(self):
     c = Classes()
     with self.assertRaises(TypeError):
         c.append_if_new(0)
예제 #6
0
 def test_append_if_new_duplicate(self):
     c = Classes(TESTLIST1)
     c.append_if_new(TESTLIST1[0])
     self.assertEqual(len(c), len(TESTLIST1))
     self.assertSequenceEqual(c, TESTLIST1)
예제 #7
0
 def test_append_if_new(self):
     c = Classes()
     c.append_if_new(TESTLIST1[0])
     self.assertEqual(len(c), 1)
     self.assertSequenceEqual(c, TESTLIST1[:1])
예제 #8
0
 def test_append_invalid_characters(self):
     c = Classes()
     invalid_name = ' '.join(('foo', 'bar'))
     with self.assertRaises(InvalidClassnameError):
         c.append_if_new(invalid_name)
예제 #9
0
 def test_append_invalid_characters(self):
     c = Classes()
     invalid_name = ' '.join(('foo', 'bar'))
     with self.assertRaises(InvalidClassnameError) as e:
         c.append_if_new(invalid_name)
     self.assertEqual(e.exception.message, "Invalid character ' ' in class name 'foo bar'.")
예제 #10
0
 def test_append_invalid_characters(self):
     c = Classes()
     invalid_name = ' '.join(('foo', 'bar'))
     with self.assertRaises(InvalidClassnameError):
         c.append_if_new(invalid_name)
예제 #11
0
 def test_append_if_new_nonstring(self):
     c = Classes()
     with self.assertRaises(TypeError):
         c.append_if_new(0)
예제 #12
0
 def test_append_if_new_duplicate(self):
     c = Classes(TESTLIST1)
     c.append_if_new(TESTLIST1[0])
     self.assertEqual(len(c), len(TESTLIST1))
     self.assertSequenceEqual(c, TESTLIST1)
예제 #13
0
 def test_append_if_new(self):
     c = Classes()
     c.append_if_new(TESTLIST1[0])
     self.assertEqual(len(c), 1)
     self.assertSequenceEqual(c, TESTLIST1[:1])