def test_copy(self): kw = Keyword(name='Keyword') copy = kw.copy() assert_equal(kw.name, copy.name) copy.name += ' copy' assert_not_equal(kw.name, copy.name) assert_equal(id(kw.tags), id(copy.tags))
def test_filter_with_predicate(self): x = Keyword(name='x') predicate = lambda item: item.name == 'x' body = Body(items=[Keyword(), x, Keyword()]) assert_equal(body.filter(predicate=predicate), [x]) body = Body(items=[Keyword(), If(), x, For(), Keyword()]) assert_equal(body.filter(keywords=True, predicate=predicate), [x])
def test_keywords_deprecation(self): self.test.body = [Keyword(), Keyword(), Keyword()] with warnings.catch_warnings(record=True) as w: kws = self.test.keywords assert_equal(len(kws), 3) assert_true('deprecated' in str(w[0].message)) assert_raises(AttributeError, kws.append, Keyword()) assert_raises(AttributeError, setattr, self.test, 'keywords', [])
def test_filter(self): k1, k2, k3 = Keyword(), Keyword(), Keyword() f1, i1, i2 = For(), If(), If() body = Body(items=[k1, f1, i1, i2, k2, k3]) assert_equal(body.filter(keywords=True), [k1, k2, k3]) assert_equal(body.filter(keywords=False), [f1, i1, i2]) assert_equal(body.filter(ifs=True, fors=True), [f1, i1, i2]) assert_equal(body.filter(ifs=False, fors=False), [k1, k2, k3]) assert_equal(body.filter(), [k1, f1, i1, i2, k2, k3])
def test_string_reprs(self): for kw, exp_str, exp_repr in [ (Keyword(), '', "Keyword(name='', args=(), assign=())"), (Keyword('name'), 'name', "Keyword(name='name', args=(), assign=())"), (Keyword(None), 'None', "Keyword(name=None, args=(), assign=())"), (Keyword('Name', args=('a1', 'a2')), 'Name a1 a2', "Keyword(name='Name', args=('a1', 'a2'), assign=())"), (Keyword('Name', assign=('${x}', '${y}')), '${x} ${y} Name', "Keyword(name='Name', args=(), assign=('${x}', '${y}'))"), (Keyword('Name', assign=['${x}='], args=['x']), '${x}= Name x', "Keyword(name='Name', args=['x'], assign=['${x}='])"), (Keyword('Name', args=(1, 2, 3)), 'Name 1 2 3', "Keyword(name='Name', args=(1, 2, 3), assign=())"), (Keyword(assign=[u'${\xe3}'], name=u'\xe4', args=[u'\xe5']), u'${\xe3} \xe4 \xe5', u'Keyword(name=%r, args=[%r], assign=[%r])' % (u'\xe4', u'\xe5', u'${\xe3}')) ]: assert_equal(unicode(kw), exp_str) assert_equal(repr(kw), 'robot.model.' + exp_repr) if PY2: assert_equal(str(kw), unicode(kw).encode('UTF-8'))
def test_keyword_teardown(self): kw = Keyword() assert_true(not kw.has_teardown) assert_true(not kw.teardown) assert_equal(kw.teardown.name, None) assert_equal(kw.teardown.type, 'TEARDOWN') kw.teardown = Keyword() assert_true(kw.has_teardown) assert_true(kw.teardown) assert_equal(kw.teardown.name, '') assert_equal(kw.teardown.type, 'TEARDOWN') kw.teardown = None assert_true(not kw.has_teardown) assert_true(not kw.teardown)
def test_id_with_messages_in_body(self): from robot.result.model import Keyword kw = Keyword() assert_equal(kw.body.create_message().id, 'k1-m1') assert_equal(kw.body.create_keyword().id, 'k1-k1') assert_equal(kw.body.create_message().id, 'k1-m2') assert_equal(kw.body.create_keyword().id, 'k1-k2')
def test_deepcopy_with_attributes(self): copy = Keyword(name='Orig').deepcopy(name='New', doc='New') assert_equal(copy.name, 'New') assert_equal(copy.doc, 'New')
def test_copy_with_attributes(self): kw = Keyword(name='Orig', doc='Orig', tags=['orig']) copy = kw.copy(name='New', doc='New', tags=['new']) assert_equal(copy.name, 'New') assert_equal(copy.doc, 'New') assert_equal(list(copy.tags), ['new'])
def test_slots(self): assert_raises(AttributeError, setattr, Keyword(), 'attr', 'value')
def test_test_body_id(self): kws = [Keyword(), Keyword(), Keyword()] TestSuite().tests.create().body.extend(kws) assert_equal([k.id for k in kws], ['s1-t1-k1', 's1-t1-k2', 's1-t1-k3'])
def test_id_without_parent(self): assert_equal(Keyword().id, 'k1') assert_equal(Keyword(type=Keyword.SETUP_TYPE).id, 'k1') assert_equal(Keyword(type=Keyword.TEARDOWN_TYPE).id, 'k1')
def test_sets_parent_and_type_correctly(self): suite = TestSuite() kw = Keyword('KW Name') fixture = create_fixture(kw, suite, Keyword.TEARDOWN) self._assert_fixture(fixture, suite, Keyword.TEARDOWN)