def setUp(self): self.app = TasksApp() Clock.schedule_interval(lambda *x: self.app.stop(), 0.000001) self.app.run() self.app.goto(SCREENS_TYPE.ABOUT) self.toolbar = self.app.root.ids.toolbar
def setUp(self): self.app = TasksApp() Clock.schedule_interval(lambda *x: self.app.stop(), 0.000001) self.app.run() self.task = self.create_task() self.app.goto(SCREENS_TYPE.EDIT, task=self.task) self.toolbar = self.app.root.ids.toolbar
class EditTaskTestCase(unittest.TestCase): def setUp(self): self.app = TasksApp() Clock.schedule_interval(lambda *x: self.app.stop(), 0.000001) self.app.run() self.task = self.create_task() self.app.goto(SCREENS_TYPE.EDIT, task=self.task) self.toolbar = self.app.root.ids.toolbar def create_task(self, ): values = dict(title="Conta de Luz", finished=False, date=datetime.now().date(), tag="conta") with db: task = Task.create(**values) task.save() return task def test_edit_task_screen_name(self, ): screen = self.app.root.ids.manager.current self.assertEqual(screen, 'edit_task') def test_edit_task_type(self, ): screen = self.app.root.ids.manager.current_screen self.assertIsInstance(screen, TaskEditScreen) def test_task_info(self, ): self.assertEqual( get_screen_element(self.app, 'task_name').text, self.task.title) self.assertEqual( get_screen_element(self.app, 'task_tag').text, self.task.tag) self.assertEqual( get_screen_element(self.app, 'task_finished').active, self.task.finished) self.assertEqual( get_screen_element(self.app, 'task_date').text, str(self.task.date)) def test_toolbar_title(self, ): """Testa se o titulo da toolbar é 'Edit Task'.""" self.assertEqual(self.app.root.ids.toolbar.title, 'Edit Task') def test_toolbar_left_action_items(self, ): """Testa se a toolbar possui o botao 'salvar'.""" self.assertEqual(len(self.toolbar.right_action_items), 1)
class AboutTestCase(unittest.TestCase): def setUp(self): self.app = TasksApp() Clock.schedule_interval(lambda *x: self.app.stop(), 0.000001) self.app.run() self.app.goto(SCREENS_TYPE.ABOUT) self.toolbar = self.app.root.ids.toolbar def test_about_screen_name(self, ): screen = self.app.root.ids.manager.current self.assertEqual(screen, 'about') def test_about_screen_type(self, ): screen = self.app.root.ids.manager.current_screen self.assertIsInstance(screen, AboutScreen)
class NewTaskTestCase(unittest.TestCase): def setUp(self): self.app = TasksApp() Clock.schedule_interval(lambda *x: self.app.stop(), 0.000001) self.app.run() self.app.goto(SCREENS_TYPE.EDIT) self.toolbar = self.app.root.ids.toolbar def test_new_task_screen_name(self, ): screen = self.app.root.ids.manager.current self.assertEqual(screen, 'new_task') def test_new_task_type(self, ): screen = self.app.root.ids.manager.current_screen self.assertIsInstance(screen, TaskEditScreen) def test_if_elements_exists(self, ): self.assertIsNotNone(get_screen_element(self.app, 'task_name')) self.assertIsNotNone(get_screen_element(self.app, 'task_tag')) self.assertIsNotNone(get_screen_element(self.app, 'task_finished')) self.assertIsNotNone(get_screen_element(self.app, 'task_date')) def test_elements_type(self, ): self.assertIsInstance(get_screen_element(self.app, 'task_name'), MDTextField) self.assertIsInstance(get_screen_element(self.app, 'task_tag'), MDTextField) self.assertIsInstance(get_screen_element(self.app, 'task_finished'), MDCheckbox) self.assertIsInstance(get_screen_element(self.app, 'task_date'), MDTextField) def test_save_task(self, ): get_screen_element(self.app, 'task_name').text = 'hola' get_screen_element(self.app, 'task_tag').text = 'mundo' get_screen_element(self.app, 'task_finished').active = True get_screen_element(self.app, 'task_date').text = str(datetime.now().date()) self.app.root.ids.manager.current_screen.save_task() self.assertIsInstance(self.app.root.ids.manager.current_screen, HomeScreen)
class TasksAppTestCase(unittest.TestCase): def setUp(self): self.app = TasksApp() Clock.schedule_interval(lambda *x: self.app.stop(), 0.000001) self.app.run() def test_app_infos(self, ): self.assertEqual(self.app.get_application_name(), 'Tasks') self.assertEqual(self.app.website, 'http://juacywillian.github.io/tasks') def test_app_build(self, ): self.assertIsInstance(self.app.root, BoxLayout) self.assertIsNotNone(self.app.root.ids.toolbar) self.assertIsNotNone(self.app.root.ids.manager) def test_goto(self, ): self.assertRaises(TypeError, self.app.goto, 'home') self.assertRaises(TypeError, self.app.goto, 1) self.assertRaisesRegex(TypeError, r".* 'SCREEN_TYPE' instance\.$", self.app.goto, 'home')
class HomeTestCase(unittest.TestCase): def setUp(self): self.app = TasksApp() Clock.schedule_once(lambda *x: self.app.stop(), 0.000001) self.app.run() self.toolbar = self.app.root.ids.toolbar def test_home_type(self, ): self.assertIsInstance(self.app.root.ids.manager.current_screen, HomeScreen) def test_home_screen_name(self, ): self.assertEqual(self.app.root.ids.manager.current, 'home') def test_toolbar_right_action_items(self, ): self.assertEqual(len(self.toolbar.right_action_items), 2) def test_plus_button_on_toolbar(self, ): self.assertIsNotNone(self.__get_toolbar_button('plus')) def __get_toolbar_button(self, icon): right_actions = self.toolbar.ids.right_actions.children for btn in right_actions: if btn.icon == icon: return btn def test_plus_button_action(self, ): self.__get_toolbar_button('plus').dispatch('on_release') self.assertEqual(self.app.root.ids.manager.current, 'new_task') def test_about_button_action(self, ): self.__get_toolbar_button('information-outline').dispatch('on_release') self.assertEqual(self.app.root.ids.manager.current, 'about') def test_info_button_on_toolbar(self, ): self.assertIsNotNone(self.__get_toolbar_button('information-outline'))
# coding: utf-8 import kivy kivy.require('1.10.1') from tasks import TasksApp if __name__ == "__main__": TasksApp().run()
def setUp(self): self.app = TasksApp() Clock.schedule_once(lambda *x: self.app.stop(), 0.000001) self.app.run() self.toolbar = self.app.root.ids.toolbar
def setUp(self): self.app = TasksApp() Clock.schedule_interval(lambda *x: self.app.stop(), 0.000001) self.app.run()
class DatabaseTestCase(unittest.TestCase): def setUp(self): self.app = TasksApp() Clock.schedule_interval(lambda *x: self.app.stop(), 0.000001) self.app.run()