Пример #1
0
def TestCaseControllerWithSteps(project=None, source='some_suite.txt'):
    tcf = TestCaseFile()
    tcf.source = source
    tcf.setting_table.suite_setup.name = 'Suite Setup Kw'
    tcf.setting_table.test_setup.name = SUITE_TEST_SETUP_KEYWORD
    tcf.setting_table.test_teardown.name = 'Test Teardown Kw'
    tcf.setting_table.suite_teardown.name = 'Suite Teardown Kw'
    tcf.setting_table.test_template.value = SUITE_TEST_TEMPLATE_KEYWORD
    testcase = _create_testcase(tcf)
    uk = tcf.keyword_table.add(USERKEYWORD1_NAME)
    uk.add_step([KEYWORD_IN_USERKEYWORD1])
    uk = tcf.keyword_table.add(USERKEYWORD2_NAME)
    uk.add_step(['No Operation'])
    uk = tcf.keyword_table.add(EMBEDDED_ARGUMENTS_KEYWORD)
    uk.add_step(['No Operation'])
    if project is None:
        library_manager = LibraryManager(':memory:')
        library_manager.create_database()
        project = Project(Namespace(FakeSettings()),
                          library_manager=library_manager)
    tcf_ctrl = TestCaseFileController(tcf, project)
    project._controller = tcf_ctrl
    tctablectrl = TestCaseTableController(tcf_ctrl,
                                          tcf.testcase_table)
    return TestCaseController(tctablectrl, testcase), project._namespace
Пример #2
0
def TestCaseControllerWithSteps(project=None, source='some_suite.txt'):
    tcf = TestCaseFile()
    tcf.source = source
    tcf.setting_table.suite_setup.name = 'Suite Setup Kw'
    tcf.setting_table.test_setup.name = SUITE_TEST_SETUP_KEYWORD
    tcf.setting_table.test_teardown.name = 'Test Teardown Kw'
    tcf.setting_table.suite_teardown.name = 'Suite Teardown Kw'
    tcf.setting_table.test_template.value = SUITE_TEST_TEMPLATE_KEYWORD
    testcase = _create_testcase(tcf)
    uk = tcf.keyword_table.add(USERKEYWORD1_NAME)
    uk.add_step([KEYWORD_IN_USERKEYWORD1])
    uk = tcf.keyword_table.add(USERKEYWORD2_NAME)
    uk.add_step(['No Operation'])
    uk = tcf.keyword_table.add(EMBEDDED_ARGUMENTS_KEYWORD)
    uk.add_step(['No Operation'])
    if project is None:
        library_manager = LibraryManager(':memory:')
        library_manager.create_database()
        project = Project(Namespace(FakeSettings()),
                          library_manager=library_manager)
    tcf_ctrl = TestCaseFileController(tcf, project)
    project._controller = tcf_ctrl
    tctablectrl = TestCaseTableController(tcf_ctrl,
                                          tcf.testcase_table)
    return TestCaseController(tctablectrl, testcase), project._namespace
Пример #3
0
def _build_test_case_file():
    tcf = TestCaseFile()
    tcf.source = 'tmp.txt'
    tcf.directory = '/tmp/'
    _add_settings_table(tcf)
    _add_variable_table(tcf)
    _add_keyword_table(tcf)
    return tcf
Пример #4
0
def _build_test_case_file():
    tcf = TestCaseFile()
    tcf.source = 'tmp.txt'
    tcf.directory = '/tmp/'
    _add_settings_table(tcf)
    _add_variable_table(tcf)
    _add_keyword_table(tcf)
    return tcf
Пример #5
0
def create(data):
    tcf = TestCaseFile()
    tcf.directory = '/path/to'
    pop = FromFilePopulator(tcf)
    pop.start_table(['Test cases'])
    for row in [ [cell for cell in line.split('  ')] for line in data]:
        pop.add(row)
    pop.eof()
    return tcf
def create(data):
    tcf = TestCaseFile()
    tcf.directory = '/path/to'
    pop = FromFilePopulator(tcf)
    pop.start_table(['Test cases'])
    for row in [[cell for cell in line.split('  ')] for line in data]:
        pop.add(row)
    pop.eof()
    return tcf
Пример #7
0
    def test_sort_and_restore_tests(self):
        # Add tests
        for test in ['Blabla', 'Atest', '2222222', '111111']:
            new_test = TestCaseController(self.ctrl, TestCase(TestCaseFile(), test))
            self.ctrl.add_test_or_keyword(new_test)

        # Capture test list before sorting
        original_tests = self.get_test_names()
        list_for_undo_comparison = original_tests[:]

        # Sort the list
        self.ctrl.execute(SortTests())
        sorted_tests = self.get_test_names()
        original_tests.sort()
        assert_equal(original_tests, sorted_tests)

        # Undo sorting
        self.ctrl.execute(Undo())
        restored_list = self.get_test_names()
        assert_equal(restored_list, list_for_undo_comparison)

        # Redo sorting
        self.ctrl.execute(Redo())
        keywords_after_redo = self.get_test_names()
        assert_equal(keywords_after_redo, sorted_tests)
Пример #8
0
 def test_add_test_or_kw(self):
     assert_equal(len(self.ctrl.tests), 0)
     new_test = TestCaseController(self.ctrl, TestCase(TestCaseFile(), 'New test'))
     self.ctrl.add_test_or_keyword(new_test)
     assert_equal(len(self.ctrl.tests), 1)
     assert_true(self.ctrl.tests[0]._test.parent.parent is self.ctrl.datafile)
     assert_true(self.ctrl.dirty)
Пример #9
0
 def test_overwrite(self):
     ctrl = TestCaseFileController(TestCaseFile(source=self._filepath).populate(),
                                   create_project())
     os.utime(self._filepath, (1,1))
     assert_true(ctrl.has_been_modified_on_disk())
     ctrl.execute(SaveFile())
     assert_false(ctrl.has_been_modified_on_disk())
Пример #10
0
 def _create_test(self, name='test'):
     suite = TestCaseFile(source='suite')
     suite_controller = TestCaseFileController(suite)
     parent = TestCaseTableController(suite_controller,
                                      suite.testcase_table)
     test = TestCase(parent=lambda: 0, name=name)
     return TestCaseController(parent, test)
Пример #11
0
 def test_find_suite_keywords(self):
     everything_tcf = TestCaseFile(
         source=TESTCASEFILE_WITH_EVERYTHING).populate()
     all_kws = self.ns.get_all_keywords([self.tcf, everything_tcf])
     self.assert_in_keywords(all_kws, 'Should be in keywords Uk',
                             'Copy List', 'Uk From Variable Resource')
     self.assert_in_keywords(all_kws, 'My Test Setup', 'My Suite Teardown')
Пример #12
0
 def test_deleting_source_should_remove_it_from_model(self):
     project = create_project()
     project._controller = TestCaseFileController(TestCaseFile(source=self._filepath), project)
     os.remove(self._filepath)
     ctrl = project.data
     ctrl.remove()
     assert_true(project.data is None)
     assert_true(self._removed_datafile is ctrl)
Пример #13
0
 def setUp(self):
     self.tcf = TestCaseFile()
     filectrl = TestCaseFileController(self.tcf)
     filectrl.resource_import_modified = Mock()
     resource_file_controller_mock = lambda:0
     resource_file_controller_mock.add_known_import = lambda *_:0
     resu_factory_mock = lambda:0
     resu_factory_mock.find_with_import = lambda *_: resource_file_controller_mock
     self.ctrl = ImportSettingsController(filectrl, self.tcf.setting_table, resu_factory_mock)
Пример #14
0
 def setUp(self):
     self.tcf = TestCaseFile()
     uk = self.tcf.keyword_table.add('UK')
     uk.add_step(['No Operation'])
     uk2 = self.tcf.keyword_table.add('UK 2')
     tablectrl = KeywordTableController(TestCaseFileController(self.tcf),
                                        self.tcf.keyword_table)
     self.ctrl = UserKeywordController(tablectrl, uk)
     self.ctrl2 = UserKeywordController(tablectrl, uk2)
Пример #15
0
 def test_is_user_keyword_in_resource_file(self):
     everything_tcf = TestCaseFile(
         source=TESTCASEFILE_WITH_EVERYTHING).populate()
     assert_is_not_none(
         self.ns.find_user_keyword(everything_tcf, 'Duplicate UK'))
     assert_true(self.ns.is_user_keyword(everything_tcf, 'Duplicate UK'))
     assert_is_not_none(
         self.ns.find_user_keyword(everything_tcf, 'Another Resource UK'))
     assert_true(
         self.ns.is_user_keyword(everything_tcf, 'Another Resource UK'))
Пример #16
0
 def setUp(self):
     self.tcf = TestCaseFile()
     self.testcase = self.tcf.testcase_table.add('Test')
     self.testcase.add_step(['Log', 'Hello'])
     self.testcase.add_step(['No Operation'])
     self.testcase.add_step(['Foo'])
     self.tcf.testcase_table.add('Another Test')
     tctablectrl = TestCaseTableController(TestCaseFileController(self.tcf),
                                           self.tcf.testcase_table)
     self.ctrl = TestCaseController(tctablectrl, self.testcase)
Пример #17
0
 def _create_controller(self, path='some.txt'):
     self._filenames_to_remove.append(path)
     self.ctrl = TestCaseFileController(TestCaseFile(source=path))
     self.saved = False
     self.deleted = False
     self._message = None
     self._error_message = None
     def save(*args): self.saved = True
     def remove_from_filesystem(*Args): self.deleted = True
     self.ctrl.save = save
     self.ctrl.remove_from_filesystem = remove_from_filesystem
     return self.ctrl
Пример #18
0
 def setUp(self):
     self.tcf = TestCaseFile()
     self.tcf.setting_table.add_library('somelib', ['foo', 'bar'])
     self.tcf.setting_table.add_resource('resu')
     self.tcf.setting_table.add_library('BuiltIn', ['WITH NAME', 'InBuilt'])
     self.tcf_ctrl = TestCaseFileController(self.tcf, ImportControllerTest.FakeParent())
     self.tcf_ctrl.data.directory = 'tmp'
     self.parent = ImportSettingsController(self.tcf_ctrl, self.tcf.setting_table,
         resource_file_controller_factory=self._resource_file_controller_factory_mock())
     self.add_import_listener = PublisherListener(RideImportSettingAdded)
     self.changed_import_listener = PublisherListener(RideImportSettingChanged)
     self.removed_import_listener = PublisherListener(RideImportSettingRemoved)
     self.import_listener = PublisherListener(RideImportSetting)
 def test_reload(self):
     controller_parent = object()
     model_parent = object()
     ctrl = TestCaseFileController(
         TestCaseFile(parent=model_parent, source=self._filepath).populate(),
         parent=controller_parent)
     assert_equals(len(ctrl.tests), 1)
     open(self._filepath, 'a').write('Second Test  Log  Hello World!\n')
     ctrl.reload()
     assert_equals(len(ctrl.tests), 2)
     assert_equals(ctrl.tests[-1].name, 'Second Test')
     assert_equals(ctrl.parent, controller_parent)
     assert_equals(ctrl.data.parent, model_parent)
 def _create_data(self, resource_name, resource_import):
     res_path = os.path.abspath(resource_name)
     tcf = TestCaseFile(source=os.path.abspath('test.txt'))
     tcf.setting_table.add_resource(resource_import)
     tcf.variable_table.add('${dirname}', os.path.abspath('.').replace('\\', '\\\\'))
     tcf.variable_table.add('${path}', os.path.abspath(resource_name).replace('\\', '\\\\'))
     library_manager = LibraryManager(':memory:')
     library_manager.create_database()
     self.project = Project(Namespace(FakeSettings()), FakeSettings(), library_manager)
     self.project._controller = TestCaseFileController(tcf, self.project)
     res = ResourceFile(source=res_path)
     self.res_controller = \
         self.project._resource_file_controller_factory.create(res)
     self.project._namespace._resource_factory.cache[os.path.normcase(res_path)] = res
Пример #21
0
class TestCaseAndUserKeywordCopyingTest(unittest.TestCase):
    controller = TestCaseFileController(
        TestCaseFile(source=COMPLEX_SUITE_PATH).populate())

    def test_test_case_copy(self):
        test = self.controller.tests[0]
        copy = test.copy('New Name')
        assert_equal(copy.name, 'New Name')
        for orig, copied in zip(test.settings, copy.settings):
            assert_equal(orig.value, copied.value)
            assert_true(copied is not orig)
        assert_equal(test.steps, copy.steps)
        assert_true(test.steps is not copy.steps)

    def test_keyword_copy(self):
        test = self.controller.keywords[0]
        copy = test.copy('New Name')
        assert_equal(copy.name, 'New Name')
        for orig, copied in zip(test.settings, copy.settings):
            assert_equal(orig.value, copied.value)
            assert_true(copied is not orig)
        assert_equal(test.steps, copy.steps)
        assert_true(test.steps is not copy.steps)

    def test_test_copy_performance(self):
        self._run_copy_test(self.controller.tests[0])

    def test_keyword_copy_performance(self):
        self._run_copy_test(self.controller.keywords[0])

    def _run_copy_test(self, item):
        self._test_copy(item, 10)
        self._test_copy(item, 200)

    def _test_copy(self, item, count):
        start_time = time.time()
        for i in range(0, count):
            item.copy(str(i))
        self.assertTrue(time.time() < (start_time + 2),
                        "Copy operation takes too long time")
def _testcasefile(path):
    data = TestCaseFile()
    data.source = os.path.normpath(path)
    return data
 def setUp(self):
     self.ctrl = TestCaseFileController(TestCaseFile()).tests
Пример #24
0
 def setUp(self):
     self.ctrl = TestCaseFileController(
         TestCaseFile(source=self.SOURCE_HTML))
Пример #25
0
 def test_size_change(self):
     os.utime(self._filepath, None)
     ctrl = TestCaseFileController(TestCaseFile(source=self._filepath).populate())
     with open(self._filepath, 'a') as file:
         file.write('#Ninja edit\n')
     assert_true(ctrl.has_been_modified_on_disk())
Пример #26
0
 def test_xml_library_is_library_keyword(self):
     everything_tcf = TestCaseFile(
         source=TESTCASEFILE_WITH_EVERYTHING).populate()
     assert_true(
         self.ns.is_library_keyword(everything_tcf,
                                    'Attributeless Keyword'))
Пример #27
0
 def _assert_contains(self, name):
     controller = DataController(TestCaseFile(), None)
     for val in self.app.namespace.get_suggestions_for(controller, 'given'):
         if val.name == name:
             return
     raise AssertionError()
Пример #28
0
 def setUp(self):
     self.tcf = TestCaseFile()
     self._add_var('${foo}', 'foo')
     self._add_var('@{bar}', ['b', 'a', 'r'])
     self.ctrl = VariableTableController(TestCaseFileController(self.tcf),
                                         self.tcf.variable_table)
Пример #29
0
 def setUp(self):
     self.tcf = TestCaseFile()
     self.tcf.setting_table.add_metadata('Meta name', 'Some value')
     self.ctrl = MetadataListController(TestCaseFileController(self.tcf),
                                        self.tcf.setting_table)
Пример #30
0
 def _get_controller(self, source):
     return DataController(TestCaseFile(source=source).populate(), None)
Пример #31
0
 def reload(self):
     self.__init__(TestCaseFile(parent=self.data.parent,
                                source=self.filename).populate(),
                   project=self._project,
                   parent=self.parent)
Пример #32
0
 def test_mtime(self):
     ctrl = TestCaseFileController(TestCaseFile(source=self._filepath).populate())
     assert_false(ctrl.has_been_modified_on_disk())
     os.utime(self._filepath, (1,1))
     assert_true(ctrl.has_been_modified_on_disk())
Пример #33
0
 def setUp(self):
     _TestMacroCommands.setUp(self)
     self._ctrl = TestCaseFileController(TestCaseFile())
Пример #34
0
def _testcasefile(path):
    data = TestCaseFile()
    data.source = os.path.normpath(path)
    return data