def METHOD_NAME(self):
    """
    Testing transaction.atomic on Project.soft_delete.
    The database should roll back changes made during the soft_delete
    of a project if deleting its linked XForms fail.
    This works on the premise that in STRICT mode XForm id_strings
    should not have spaces in them.
    """
    organization = self._create_organization("modilabs", self.user)
    project_name = "demo"
    project = self._create_project(organization, project_name, self.user)
    sample_json = '{"default_language": "default", ' \
                  '"id_string": "Water_2011_03_17", "children": [], ' \
                  '"name": "Water_2011_03_17", ' \
                  '"title": "Water_2011_03_17", "type": "survey"}'
    f = open(os.path.join(
        os.path.dirname(os.path.abspath(__file__)),
        '../../../',
        'logger/tests/',
        "Water_Translated_2011_03_10.xml"
    ))
    xml = f.read()
    f.close()
    xform = XForm.objects.create(
        xml=xml, user=self.user, json=sample_json, project=project)
    f = open(os.path.join(os.path.dirname(
        os.path.abspath(__file__)),
        '../../../',
        'logger/tests/',
        'Water_Translated_2011_03_10_2011-03-10_14-38-28.xml')
    )
    xml = f.read()
    f.close()
    Instance.objects.create(xml=xml, user=self.user, xform=xform)
    # try and slice the RawQueryset in order to have it evaluated
    try:
        XForm.objects.raw(
            "UPDATE logger_xform SET id_string='a New ID String' \
            WHERE id={};".format(xform.id))[0]
    except TypeError:
        pass
    xform_refetch = XForm.objects.all()[0]
    self.assertEqual('a New ID String', xform_refetch.id_string)
    with self.assertRaises(XLSFormError):
        project.soft_delete()
        self.assertEqual(1, Project.objects.filter(
            deleted_at__isnull=True).count())
        self.assertIsNone(project.deleted_at)
        self.assertEqual(1, XForm.objects.filter(
            project=project, deleted_at__isnull=True).count())
    # Try deleting the Xform; it should also roll back due to the exception
    with self.assertRaises(XLSFormError):
        XForm.objects.all()[0].soft_delete()
        self.assertEqual(1, XForm.objects.filter(
            deleted_at__isnull=True).count())
        self.assertIsNone(XForm.objects.all()[0].deleted_at)