def test_save_should_set_users_password_and_return_instance(self, save):
        # setup
        form = EditPasswordForm()
        cleaned_data = dict(password='******')
        form.cleaned_data = cleaned_data
        instance = mock.Mock()
        save.return_value = instance

        # action
        returned_value = form.save()

        # assert
        self.assertDictEqual(dict(commit=False), save.call_args[1])
        self.assertTupleEqual((cleaned_data['password'], ),
                              instance.set_password.call_args[0])
        self.assertEqual(1, instance.save.call_count)
        self.assertEqual(id(instance), id(returned_value))