コード例 #1
0
 def test_multiple_nots_with_ors(self):
     patterns = TagPatterns('a OR b NOT c OR d NOT e OR f')
     assert_true(patterns.match(['a']))
     assert_true(patterns.match(['B']))
     assert_false(patterns.match(['c']))
     assert_true(all(not patterns.match(['a', 'b', c]) for c in 'cdef'))
     assert_true(patterns.match(['a', 'x']))
コード例 #2
0
ファイル: test_tags.py プロジェクト: xylix/robotframework
 def test_str(self):
     for pattern in ['a', 'NOT a', 'a NOT b', 'a AND b', 'a OR b', 'a*',
                     'a OR b NOT c OR d AND e OR ??']:
         assert_equal(str(TagPatterns(pattern)),
                      '[%s]' % pattern)
         assert_equal(str(TagPatterns(pattern.replace(' ', ''))),
                      '[%s]' % pattern)
         assert_equal(str(TagPatterns([pattern, 'x', pattern, 'y'])),
                      '[%s, x, y]' % pattern)
コード例 #3
0
 def test_or(self):
     patterns = TagPatterns(['xORy', '???ORz'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['a', 'b', '12', '1234']))
     assert_true(patterns.match(['x']))
     assert_true(patterns.match(['Y']))
     assert_true(patterns.match(['123']))
     assert_true(patterns.match(['Z']))
     assert_true(patterns.match(['x', 'y', 'z']))
     assert_true(patterns.match(['123', 'a', 'b', 'c', 'd']))
     assert_true(patterns.match(['a', 'b', 'c', 'd', 'Z']))
コード例 #4
0
 def test_multiple_nots(self):
     patterns = TagPatterns(['xNOTyNOTz', '1 NOT 2 NOT 3 NOT 4'])
     assert_true(patterns.match(['x']))
     assert_false(patterns.match(['x', 'y']))
     assert_false(patterns.match(['x', 'z']))
     assert_false(patterns.match(['x', 'y', 'z']))
     assert_false(patterns.match(['xxx']))
     assert_true(patterns.match(['1']))
     assert_false(patterns.match(['1', '3', '4']))
     assert_false(patterns.match(['1', '2', '3']))
     assert_false(patterns.match(['1', '2', '3', '4']))
コード例 #5
0
 def test_or(self):
     patterns = TagPatterns(['xORy', '???ORz'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['a', 'b', '12', '1234']))
     assert_true(patterns.match(['x']))
     assert_true(patterns.match(['Y']))
     assert_true(patterns.match(['123']))
     assert_true(patterns.match(['Z']))
     assert_true(patterns.match(['x', 'y', 'z']))
     assert_true(patterns.match(['123', 'a', 'b', 'c', 'd']))
     assert_true(patterns.match(['a', 'b', 'c', 'd', 'Z']))
コード例 #6
0
 def test_multiple_ors(self):
     patterns = TagPatterns(['xORyORz'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['xxx']))
     assert_true(all(patterns.match([c]) for c in 'XYZ'))
     assert_true(all(patterns.match(['a', 'b', c, 'd']) for c in 'xyz'))
     assert_true(patterns.match(['x', 'y']))
     assert_true(patterns.match(['x', 'Y', 'z']))
コード例 #7
0
 def test_starts_with_not(self):
     patterns = TagPatterns('NOTe')
     assert_true(patterns.match('d'))
     assert_false(patterns.match('e'))
     patterns = TagPatterns('NOT e OR f')
     assert_true(patterns.match('d'))
     assert_false(patterns.match('e'))
     assert_false(patterns.match('f'))
コード例 #8
0
 def test_multiple_nots_with_ands(self):
     patterns = TagPatterns('a AND b NOT c AND d NOT e AND f')
     assert_true(patterns.match(['a', 'b']))
     assert_true(patterns.match(['a', 'b', 'c']))
     assert_true(patterns.match(['a', 'b', 'c', 'e']))
     assert_false(patterns.match(['a', 'b', 'c', 'd']))
     assert_false(patterns.match(['a', 'b', 'e', 'f']))
     assert_false(patterns.match(['a', 'b', 'c', 'd', 'e', 'f']))
     assert_false(patterns.match(['a', 'b', 'c', 'd', 'e']))
コード例 #9
0
 def test_not(self):
     patterns = TagPatterns(['xNOTy', '???NOT?'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x', 'y']))
     assert_false(patterns.match(['123', 'y', 'z']))
     assert_true(patterns.match(['x']))
     assert_true(patterns.match(['123', 'xx']))
コード例 #10
0
 def test_multiple_ands(self):
     patterns = TagPatterns(['xANDyANDz'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x']))
     assert_false(patterns.match(['x', 'y']))
     assert_true(patterns.match(['x', 'Y', 'z']))
     assert_true(patterns.match(['a', 'y', 'z', 'b', 'X']))
コード例 #11
0
 def test_multiple_nots(self):
     patterns = TagPatterns(['xNOTyNOTz', '1 NOT 2 NOT 3 NOT 4'])
     assert_true(patterns.match(['x']))
     assert_false(patterns.match(['x', 'y']))
     assert_false(patterns.match(['x', 'z']))
     assert_false(patterns.match(['x', 'y', 'z']))
     assert_false(patterns.match(['xxx']))
     assert_true(patterns.match(['1']))
     assert_false(patterns.match(['1', '3', '4']))
     assert_false(patterns.match(['1', '2', '3']))
     assert_false(patterns.match(['1', '2', '3', '4']))
コード例 #12
0
 def test_multiple_ors(self):
     patterns = TagPatterns(['xORyORz'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['xxx']))
     assert_true(all(patterns.match([c]) for c in 'XYZ'))
     assert_true(all(patterns.match(['a', 'b', c, 'd']) for c in 'xyz'))
     assert_true(patterns.match(['x', 'y']))
     assert_true(patterns.match(['x', 'Y', 'z']))
コード例 #13
0
ファイル: statistics.py プロジェクト: laxmanCT/robotframework
 def _add_combined_statistics(self, test):
     for pattern, name in self._combine:
         name = name or pattern
         if name not in self.stats:
             self.stats[name] = TagStat(name,
                                        self._get_doc(name),
                                        self._get_links(name),
                                        combined=pattern)
         if TagPatterns(pattern).match(test.tags):
             self.stats[name].add_test(test)
コード例 #14
0
 def test_multiple_nots_with_ands(self):
     patterns = TagPatterns('a AND b NOT c AND d NOT e AND f')
     assert_true(patterns.match(['a', 'b']))
     assert_true(patterns.match(['a', 'b', 'c']))
     assert_true(patterns.match(['a', 'b', 'c', 'e']))
     assert_false(patterns.match(['a', 'b', 'c', 'd']))
     assert_false(patterns.match(['a', 'b', 'e', 'f']))
     assert_false(patterns.match(['a', 'b', 'c', 'd', 'e', 'f']))
     assert_false(patterns.match(['a', 'b', 'c', 'd', 'e']))
コード例 #15
0
 def test_multiple_nots_with_ors(self):
     patterns = TagPatterns('a OR b NOT c OR d NOT e OR f')
     assert_true(patterns.match(['a']))
     assert_true(patterns.match(['B']))
     assert_false(patterns.match(['c']))
     assert_true(all(not patterns.match(['a', 'b', c]) for c in 'cdef'))
     assert_true(patterns.match(['a', 'x']))
コード例 #16
0
 def test_multiple_ands(self):
     patterns = TagPatterns(['xANDyANDz'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x']))
     assert_false(patterns.match(['x', 'y']))
     assert_true(patterns.match(['x', 'Y', 'z']))
     assert_true(patterns.match(['a', 'y', 'z', 'b', 'X']))
コード例 #17
0
 def test_not(self):
     patterns = TagPatterns(['xNOTy', '???NOT?'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x', 'y']))
     assert_false(patterns.match(['123', 'y', 'z']))
     assert_true(patterns.match(['x']))
     assert_true(patterns.match(['123', 'xx']))
コード例 #18
0
 def test_starts_with_not(self):
     patterns = TagPatterns('NOTe')
     assert_true(patterns.match('d'))
     assert_false(patterns.match('e'))
     patterns = TagPatterns('NOT e OR f')
     assert_true(patterns.match('d'))
     assert_false(patterns.match('e'))
     assert_false(patterns.match('f'))
コード例 #19
0
 def _should_skip_on_failure(self, test, skip_on_failure_tags,
                             critical_tags):
     # TODO: test if this can be used with not critical TagPattern
     critical_pattern = TagPatterns(critical_tags)
     if critical_pattern and critical_pattern.match(test.tags):
         return False
     skip_on_fail_pattern = TagPatterns(skip_on_failure_tags)
     return skip_on_fail_pattern and skip_on_fail_pattern.match(test.tags)
コード例 #20
0
 def test_seq2str(self):
     patterns = TagPatterns([u'is\xe4', u'\xe4iti'])
     assert_equal(seq2str(patterns), u"'is\xe4' and '\xe4iti'")
コード例 #21
0
 def test_unicode(self):
     pattern = u'\xe4 OR \xe5 NOT \xe6 AND \u2603 OR ??'
     expected = '[%s]' % pattern
     assert_equal(unicode(TagPatterns(pattern)), expected)
     assert_equal(unicode(TagPatterns(pattern.replace(' ', ''))), expected)
コード例 #22
0
 def test_and(self):
     patterns = TagPatterns(['xANDy', '???ANDz'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x']))
     assert_true(patterns.match(['x', 'y', 'z']))
     assert_true(patterns.match(['123', 'y', 'z']))
コード例 #23
0
 def test_not_and_or(self):
     patterns = TagPatterns(
         ['xNOTyORz', 'aORbNOTc', '1 OR 2? OR 3?? NOT 4* OR 5* OR 6*'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x', 'y', 'z']))
     assert_false(patterns.match(['x', 'y']))
     assert_false(patterns.match(['Z', 'x']))
     assert_true(patterns.match(['x']))
     assert_true(patterns.match(['xxx', 'X']))
     assert_true(patterns.match(['a', 'b']))
     assert_false(patterns.match(['a', 'b', 'c']))
     assert_true(patterns.match(['a']))
     assert_true(patterns.match(['B', 'XXX']))
     assert_false(patterns.match(['b', 'c']))
     assert_false(patterns.match(['c']))
     assert_true(patterns.match(['x', 'y', '321']))
     assert_false(patterns.match(['x', 'y', '32']))
     assert_false(patterns.match(['1', '2', '3', '4']))
     assert_true(patterns.match(['1', '22', '333']))
コード例 #24
0
 def test_not_and_and(self):
     patterns = TagPatterns([
         'xNOTyANDz', 'aANDbNOTc', '1 AND 2? AND 3?? NOT 4* AND 5* AND 6*'
     ])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x', 'y', 'z']))
     assert_true(patterns.match(['x', 'y']))
     assert_true(patterns.match(['x']))
     assert_false(patterns.match(['a', 'b', 'c']))
     assert_false(patterns.match(['a']))
     assert_false(patterns.match(['b']))
     assert_true(patterns.match(['a', 'b']))
     assert_true(patterns.match(['a', 'b', 'xxxx']))
     assert_false(patterns.match(['1', '22', '33']))
     assert_false(patterns.match(['1', '22', '333', '4', '5', '6']))
     assert_true(patterns.match(['1', '22', '333']))
     assert_true(patterns.match(['1', '22', '333', '4', '5', '7']))
コード例 #25
0
 def test_not_and_and(self):
     patterns = TagPatterns(['xNOTyANDz', 'aANDbNOTc',
                             '1 AND 2? AND 3?? NOT 4* AND 5* AND 6*'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x', 'y', 'z']))
     assert_true(patterns.match(['x', 'y']))
     assert_true(patterns.match(['x']))
     assert_false(patterns.match(['a', 'b', 'c']))
     assert_false(patterns.match(['a']))
     assert_false(patterns.match(['b']))
     assert_true(patterns.match(['a', 'b']))
     assert_true(patterns.match(['a', 'b', 'xxxx']))
     assert_false(patterns.match(['1', '22', '33']))
     assert_false(patterns.match(['1', '22', '333', '4', '5', '6']))
     assert_true(patterns.match(['1', '22', '333']))
     assert_true(patterns.match(['1', '22', '333', '4', '5', '7']))
コード例 #26
0
 def test_not_and_or(self):
     patterns = TagPatterns(['xNOTyORz', 'aORbNOTc',
                             '1 OR 2? OR 3?? NOT 4* OR 5* OR 6*'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x', 'y', 'z']))
     assert_false(patterns.match(['x', 'y']))
     assert_false(patterns.match(['Z', 'x']))
     assert_true(patterns.match(['x']))
     assert_true(patterns.match(['xxx', 'X']))
     assert_true(patterns.match(['a', 'b']))
     assert_false(patterns.match(['a', 'b', 'c']))
     assert_true(patterns.match(['a']))
     assert_true(patterns.match(['B', 'XXX']))
     assert_false(patterns.match(['b', 'c']))
     assert_false(patterns.match(['c']))
     assert_true(patterns.match(['x', 'y', '321']))
     assert_false(patterns.match(['x', 'y', '32']))
     assert_false(patterns.match(['1', '2', '3', '4']))
     assert_true(patterns.match(['1', '22', '333']))
コード例 #27
0
 def test_and(self):
     patterns = TagPatterns(['xANDy', '???ANDz'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['x']))
     assert_true(patterns.match(['x', 'y', 'z']))
     assert_true(patterns.match(['123', 'y', 'z']))
コード例 #28
0
 def test_single_pattern(self):
     patterns = TagPatterns(['x', 'y', 'z*'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['no', 'match']))
     assert_true(patterns.match(['x']))
     assert_true(patterns.match(['xxx', 'zzz']))
コード例 #29
0
 def test_single_pattern(self):
     patterns = TagPatterns(['x', 'y', 'z*'])
     assert_false(patterns.match([]))
     assert_false(patterns.match(['no', 'match']))
     assert_true(patterns.match(['x']))
     assert_true(patterns.match(['xxx', 'zzz']))