We should begin by preparing the data to be used in the tests.

It is convenient to perform the test actions under a specific user, in order to also test that access control is properly configured. This is achieved using the sudo() model method. Recordsets carry that information with them, so after being created while using sudo(), later operations in the same recordset will be performed using that same context.

This is the code for the setUp method, and a few additional import statements that are also needed:

from datetime import date
from odoo.tests.common import TransactionCase
from odoo import fields

class TestWizard(TransactionCase):

    def setUp(self, *args, **kwargs):
        super(TestWizard, self).setUp(*args, **kwargs)
        # Close any open Todo tasks
        self.env['todo.task']\
            .search([('is_done', '=', False)])\
            .write({'is_done': True})
        # Demo user will be used to run tests
        demo_user = self.env.ref('base.user_demo') 
        # Create two Todo tasks to use in tests
        t0 = date.today()
        Todo = self.env['todo.task'].sudo(demo_user)
        self.todo1 = Todo.create({
            'name': 'Todo1',
            'date_deadline': fields.Date.to_string(t0)})
        self.todo2 = Todo.create({
            'name': 'Todo2'})
        # Create Wizard instance to use in tests
        Wizard = self.env['todo.wizard'].sudo(demo_user)
        self.wizard = Wizard.create({})

To test our wizard, we want to have exactly two open Todos. So we start by closing any existing Todos, so that they don't get in the way of our tests, and create two new Todos for tests, using the Demo user. We finally create a new instance of our wizard, using the Demo user, and assign it to self.wizard, so that is available to the test methods.