コード例 #1
0
 def test_get_projects_for_user_none(self):
     p = Project(title="title", description="desc")
     p.save()
     self.assertEqual(
         models.project_api.get_projects_for_user(
             self.__user.id).count(),
         0)
コード例 #2
0
 def test_delete_project_fail(self):
     p = Project(title="title", description="desc")
     p.save()
     self.assertEqual(1, Project.objects.filter(id=p.id).count())
     projID = p.id - 1
     models.project_api.delete_project(None)
     self.assertEqual(1, Project.objects.filter(id=p.id).count())
コード例 #3
0
 def test_delete_project_fail(self):
     p = Project(title="title", description="desc")
     p.save()
     self.assertEqual(1, Project.objects.filter(id=p.id).count())
     projID = p.id - 1
     models.project_api.delete_project(None)
     self.assertEqual(1, Project.objects.filter(id=p.id).count())
コード例 #4
0
    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user = User(username="******", password="******")
        self.__user.save()
コード例 #5
0
 def test_can_user_access_project_can(self):
     p = Project(title="title", description="desc")
     p.save()
     u = UserAssociation(user=self.__user, project=p)
     u.save()
     self.assertEqual(
         models.project_api.can_user_access_project(self.__user.id, p.id),
         True)
コード例 #6
0
 def test_get_project_users_one(self):
     p = Project(title="title", description="desc")
     p.save()
     models.project_api.add_user_to_project(
         p.id,
         self.__user.username,
         models.user_association.ROLE_DEVELOPER)
     self.assertEqual(models.project_api.get_all_projects().count(), 1)
コード例 #7
0
 def test_can_user_access_project_cant(self):
     p = Project(title="title", description="desc")
     p.save()
     self.assertEqual(
         models.project_api.can_user_access_project(
             self.__user.id,
             p.id),
         False)
コード例 #8
0
 def test_add_user_to_project_pass(self):
     p = Project(title="title", description="desc")
     p.save()
     models.project_api.add_user_to_project(
         p.id, self.__user.username, models.user_association.ROLE_DEVELOPER)
     self.assertEqual(
         UserAssociation.objects.filter(project_id=p.id,
                                        user_id=self.__user.id).count(), 1)
コード例 #9
0
 def test_get_projects_for_user_one(self):
     p = Project(title="title", description="desc")
     p.save()
     
     u = UserAssociation(user = self.__user, project=p)
     u.save()
     
     self.assertEqual( models.project_api.get_projects_for_user(self.__user.id).count(), 1)    
コード例 #10
0
 def test_get_iteration_pass(self):
     p = Project(title="title", description="desc")
     p.save()
     iteration = models.project_api.add_iteration_to_project(
         "title", "description", datetime.date.today(), datetime.date.max,
         p.id)
     self.assertEqual(
         1,
         models.project_api.get_iterations_for_project(p).count())
コード例 #11
0
 def test_remove_user_from_project_pass(self):
     p = Project(title="title", description="desc")
     p.save()
     models.project_api.add_user_to_project(p.id, self.__user.username, models.user_association.ROLE_DEVELOPER)
     self.assertEqual(UserAssociation.objects.filter(project_id=p.id,
                                                     user_id=self.__user.id).count(),1)
     models.project_api.remove_user_from_project(p.id, self.__user.username)
     self.assertEqual(UserAssociation.objects.filter(project_id=p.id,
                                                     user_id=self.__user.id).count(),0)
コード例 #12
0
    def test_get_projects_for_user_one(self):
        p = Project(title="title", description="desc")
        p.save()

        u = UserAssociation(user=self.__user, project=p)
        u.save()

        self.assertEqual(
            models.project_api.get_projects_for_user(self.__user.id).count(),
            1)
 def test_get_iteration_pass(self):
     p = Project(title="title", description="desc")
     p.save()
     iteration = models.project_api.add_iteration_to_project(
         "title",
         "description",
         datetime.date.today(),
         datetime.date.max,
         p.id)
     self.assertEqual(1, models.project_api.get_iterations_for_project(p).count())
コード例 #14
0
 def test_can_user_access_project_can(self):
     p = Project(title="title", description="desc")
     p.save()
     u = UserAssociation(user=self.__user, project=p)
     u.save()
     self.assertEqual(
         models.project_api.can_user_access_project(
             self.__user.id,
             p.id),
         True)
コード例 #15
0
 def test_get_project_stories_one(self):
     p = Project(title="title", description="desc")
     p.save()
     models.story.create_story(p, {"title" : "title",
                                                "description" : "desc",
                                                "reason" : "reason",
                                                "test" : "test",
                                                "status" : 1})
     
     iterations = models.project_api.get_iterations_for_project(p)
     stories = models.story.get_stories_for_project(p)
     self.assertEqual(True, stories.exists())
コード例 #16
0
    def test_get_project_stories_one(self):
        p = Project(title="title", description="desc")
        p.save()
        models.story.create_story(p, {"title": "title",
                                      "description": "desc",
                                      "reason": "reason",
                                      "test": "test",
                                      "status": 1})

        iterations = models.project_api.get_iterations_for_project(p)
        stories = models.story.get_stories_for_project(p)
        self.assertEqual(True, stories.exists())
コード例 #17
0
    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user1 = User(username="******", password="******")
        self.__user1.save()
        self.__user2 = User(username="******", password="******")
        self.__user2.save()
        self.__user3 = User(username="******", password="******")
        self.__user3.save()
        self.__user = User(username="******", password="******")
        self.__user.save()
コード例 #18
0
    def test_get_project_stories_with_no_iteration(self):
        p = Project(title="title", description="desc")
        p.save()
        iteration = models.project_api.add_iteration_to_project("title", "description", datetime.date.today(), datetime.date.max, p.id)
        story = models.story.create_story({},p,{'title' : "title",
                                                'description' : "description", 
                                                'test' : "",
                                                'reason' : "",
                                                'status' : 1}) 
        stories = models.project_api.get_stories_with_no_iteration(p)
 
        self.assertEquals(stories.count(), 1)
        self.assertEquals(stories[0], story)        
コード例 #19
0
    def test_add_story_to_iteration_story_not_in_project(self):
        p = Project(title="title", description="desc")
        p.save()
        title = "title"
        description = "description"
        start_date = datetime.date.today()
        end_date = datetime.date.max
        iteration = models.project_api.add_iteration_to_project(
            title, description, start_date, end_date, p.id)

        p2 = Project(title="title2", description="desc2")
        p2.save()

        story = models.story.create_story({}, p2, {
            'title': "title",
            'description': "description",
            'test': '',
            'reason': '',
            'status': 1
        })
        try:
            models.project_api.add_story_to_iteration(story, iteration)
            self.fail(
                "Adding a story to an invalid iteration did not throw an exception"
            )
        except (ValueError):
            pass
コード例 #20
0
 def test_add_user_to_project_fail_bad_user(self):
     p = Project(title="title", description="desc")
     p.save()
     
     #pass a null user
     models.project_api.add_user_to_project(p.id, None, models.user_association.ROLE_DEVELOPER)
     self.assertEqual(UserAssociation.objects.filter(project_id=p.id,
                                                     user_id=self.__user.id).count(),0)
         
     #pass an unknown user
     user = User(username="******", password="******")
     models.project_api.add_user_to_project(p.id, user, models.user_association.ROLE_DEVELOPER)
     self.assertEqual(UserAssociation.objects.filter(project_id=p.id,
                                                     user_id=self.__user.id).count(),0)
コード例 #21
0
    def test_get_all_projects_two(self):
        p = Project(title="title", description="desc")
        p.save()

        p2 = Project(title="title2", description="desc2")
        p2.save()

        self.assertEqual(models.project_api.get_all_projects().count(), 2)
コード例 #22
0
    def test_add_iteration_to_project_pass(self):
        p = Project(title="title", description="desc")
        p.save()
        title = "title"
        description = "description"

        start_date = datetime.date.today()
        end_date = datetime.date.max
        iteration = models.project_api.add_iteration_to_project(
            title, description, start_date, end_date, p.id)

        self.assertEqual(start_date, iteration.start_date)
        self.assertEqual(end_date, iteration.end_date)
        self.assertEqual(title, iteration.title)
        self.assertEqual(description, iteration.description)
        self.assertEqual(1, p.iteration_set.count())
コード例 #23
0
ファイル: test_roles.py プロジェクト: ayodele1/Final_Project
    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user = User(username="******", password="******")
        self.__user.save()
コード例 #24
0
 def test_add_story_to_iteration(self):
     p = Project(title="title", description="desc")
     p.save()
     title = "title"
     description = "description"
     start_date = datetime.date.today()
     end_date = datetime.date.max
     iteration = models.project_api.add_iteration_to_project(title, description, start_date, end_date, p.id)
      
     story = models.story.create_story(self.__user,p, {'title' : "title", 
                                                       'description' : "description",
                                                       'test' : "",
                                                       'reason' : "reason",
                                                       'status' : 1})
     
     models.project_api.add_story_to_iteration(story, iteration)
     self.assertEqual(iteration,story.iteration)
コード例 #25
0
    def test_get_project_stories_with_no_iteration(self):
        p = Project(title="title", description="desc")
        p.save()
        iteration = models.project_api.add_iteration_to_project(
            "title", "description", datetime.date.today(), datetime.date.max,
            p.id)
        story = models.story.create_story({}, p, {
            'title': "title",
            'description': "description",
            'test': "",
            'reason': "",
            'status': 1
        })
        stories = models.project_api.get_stories_with_no_iteration(p)

        self.assertEquals(stories.count(), 1)
        self.assertEquals(stories[0], story)
コード例 #26
0
    def test_add_iteration_to_project_fail_bad_project(self):
        p = Project(title="title", description="desc")
        p.save()

        # pass a null prject
        title = "title"
        description = "description"
        start_date = datetime.date.today()
        end_date = datetime.date.max
        iteration = models.project_api.add_iteration_to_project(
            title, description, start_date, end_date, None)
        self.assertEqual(0, p.iteration_set.count())

        # pass an unknown project
        projID = p.id - 1
        iteration = models.project_api.add_iteration_to_project(
            title, description, start_date, end_date, projID)
        self.assertEqual(0, p.iteration_set.count())
    def test_add_iteration_to_project_pass(self):
        p = Project(title="title", description="desc")
        p.save()
        title = "title"
        description = "description"

        start_date = datetime.date.today()
        end_date = datetime.date.max
        iteration = models.project_api.add_iteration_to_project(title,
                                                                description,
                                                                start_date,
                                                                end_date, p.id)

        self.assertEqual(start_date, iteration.start_date)
        self.assertEqual(end_date, iteration.end_date)
        self.assertEqual(title, iteration.title)
        self.assertEqual(description, iteration.description)
        self.assertEqual(1, p.iteration_set.count())
コード例 #28
0
    def test_add_user_to_project_fail_bad_user(self):
        p = Project(title="title", description="desc")
        p.save()

        # pass a null user
        models.project_api.add_user_to_project(
            p.id, None, models.user_association.ROLE_DEVELOPER)
        self.assertEqual(
            UserAssociation.objects.filter(project_id=p.id,
                                           user_id=self.__user.id).count(), 0)

        # pass an unknown user
        user = User(username="******", password="******")
        models.project_api.add_user_to_project(
            p.id, user, models.user_association.ROLE_DEVELOPER)
        self.assertEqual(
            UserAssociation.objects.filter(project_id=p.id,
                                           user_id=self.__user.id).count(), 0)
コード例 #29
0
    def test_add_story_to_iteration(self):
        p = Project(title="title", description="desc")
        p.save()
        title = "title"
        description = "description"
        start_date = datetime.date.today()
        end_date = datetime.date.max
        iteration = models.project_api.add_iteration_to_project(
            title, description, start_date, end_date, p.id)

        story = models.story.create_story(
            self.__user, p, {
                'title': "title",
                'description': "description",
                'test': "",
                'reason': "reason",
                'status': 1
            })

        models.project_api.add_story_to_iteration(story, iteration)
        self.assertEqual(iteration, story.iteration)
    def test_add_story_to_iteration_story_not_in_project(self):
        p = Project(title="title", description="desc")
        p.save()
        title = "title"
        description = "description"
        start_date = datetime.date.today()
        end_date = datetime.date.max
        iteration = models.project_api.add_iteration_to_project(
            title,
            description,
            start_date,
            end_date,
            p.id)

        p2 = Project(title="title2", description="desc2")
        p2.save()

        story = models.story.create_story(p2, {'title': "title",
                                               'description': "description",
                                               'test': '',
                                               'reason': '',
                                               'status': 1})
        try:
            models.project_api.add_story_to_iteration(story, iteration)
            self.fail(
                "Adding a story to an invalid iteration did not throw an exception")
        except(ValueError):
            pass
コード例 #31
0
 def test_valid_date_for_iteration_start(self):
     p = Project(title="title", description="desc")
     p.save()
     title = "title"
     description = "description"
     start_date = datetime.datetime.today() - datetime.timedelta(days=1)
     str_start_date = datetime.datetime.strftime(start_date,"%m/%d/%Y")
     earliest_possible_start_date = datetime.date.today()
     end_date = datetime.date.max
     str_end_date = datetime.datetime.strftime(end_date,"%m/%d/%Y")
     fields = {'title': title, 'description': description, 'start_date': str_start_date, 'end_date': str_end_date}
     iteration = mdl_iteration.create_iteration(p, fields)
     #iteration = models.project_api.add_iteration_to_project(
     #    title,
     #    description,
     #    start_date,
     #    end_date,
     #    p.id)
     
     #Asserting whether iteration was created successfully with an invalid start date of yesterday
     #Expected action will be that a date of today will automatically be inserted
     self.assertEqual(iteration.start_date, earliest_possible_start_date)
コード例 #32
0
    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user1 = User(username="******", password="******")
        self.__user1.save()
	self.__user2 = User(username="******", password="******")
        self.__user2.save()
	self.__user3 = User(username="******", password="******")
        self.__user3.save()
	self.__user = User(username="******", password="******")
        self.__user.save()
コード例 #33
0
 def test_get_all_projects_two(self):
     p = Project(title="title", description="desc")
     p.save()
     
     p2 = Project(title="title2", description="desc2")
     p2.save()
     
     self.assertEqual( models.project_api.get_all_projects().count(), 2)
コード例 #34
0
    def test_valid_date_for_iteration_end(self):
    	p = Project(title="title", description="desc")
        p.save()
        title = "title"
        description = "description"
        start_date = datetime.date.today() + datetime.timedelta(days=1)
        str_start_date = datetime.datetime.strftime(start_date,"%m/%d/%Y")
        earliest_possible_end_date = start_date
        end_date = datetime.date.today()
        str_end_date = datetime.datetime.strftime(end_date,"%m/%d/%Y")
        fields = {'title': title, 'description': description, 'start_date': str_start_date, 'end_date': str_end_date}
        iteration = mdl_iteration.create_iteration(p, fields)
        
        #iteration = models.project_api.add_iteration_to_project(
        #    title,
        #    description,
        #    start_date,
        #    end_date,
        #    p.id)
        
	    #Asserting whether iteration was created successfully with an invalid end date earlier than start date
        #Expected action will be that the function automatically returns an end date that is the same as the start date
        self.assertEqual(iteration.end_date, earliest_possible_end_date)
    def test_add_iteration_to_project_fail_bad_project(self):
        p = Project(title="title", description="desc")
        p.save()

        # pass a null prject
        title = "title"
        description = "description"
        start_date = datetime.date.today()
        end_date = datetime.date.max
        iteration = models.project_api.add_iteration_to_project(title,
                                                                description,
                                                                start_date,
                                                                end_date,
                                                                None)
        self.assertEqual(0, p.iteration_set.count())

        # pass an unknown project
        projID = p.id - 1
        iteration = models.project_api.add_iteration_to_project(title,
                                                                description,
                                                                start_date,
                                                                end_date,
                                                                projID)
        self.assertEqual(0, p.iteration_set.count())
コード例 #36
0
    def test_create_story_fail(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }

        #pass a null project
        s = models.story.create_story(self.__user, None, fields)
        self.assertEqual(0, self.__project.story_set.count())

        #create a project, but don't save it
        p = Project(title="title", description="description")
        s = models.story.create_story(self.__user, p, fields)
        self.assertEqual(0, self.__project.story_set.count())
コード例 #37
0
    def test_create_story_fail(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}

        # pass a null project
        s = models.story.create_story(None, fields)
        self.assertEqual(0, self.__project.story_set.count())

        # create a project, but don't save it
        p = Project(title="title", description="description")
        try:
            with transaction.atomic():
                s = models.story.create_story(p, fields)
        except Exception:
            pass
        self.assertEqual(0, self.__project.story_set.count())
コード例 #38
0
 def test_get_project_users_none(self):
     p = Project(title="title", description="desc")
     p.save()
     self.assertEqual(models.project_api.get_project_users(p.id).count(), 0)
コード例 #39
0
 def test_get_project_pass(self):
     p = Project(title="title", description="desc")
     p.save()
     self.assertEqual(p, models.project_api.get_project(p.id))
コード例 #40
0
ファイル: test_roles.py プロジェクト: ayodele1/Final_Project
class RoleTestCase(TestCase):

    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user = User(username="******", password="******")
        self.__user.save()

    def tearDown(self):
        self.__clear()

    def __clear(self):
        UserAssociation.objects.all().delete
        Project.objects.all().delete
        User.objects.all().delete

    def __addUserAsClient(self):
        ua = UserAssociation(
            project=self.__project,
            user=self.__user,
            role=user_association.ROLE_CLIENT)
        ua.save()

    def __addUserAsDev(self):
        ua = UserAssociation(
            project=self.__project,
            user=self.__user,
            role=user_association.ROLE_DEVELOPER)
        ua.save()

    def __addUserAsOwner(self):
        ua = UserAssociation(
            project=self.__project,
            user=self.__user,
            role=user_association.ROLE_OWNER)
        ua.save()

    def testAddStoryAsClient(self):
        self.__addUserAsClient()
        self.assertEquals(
            user_manager.canCreateStoryInProject(
                userID=self.__user.id,
                projectID=self.__project.id),
            True)

    def testAddStoryAsDev(self):
        self.__addUserAsDev()
        self.assertEquals(
            user_manager.canCreateStoryInProject(
                userID=self.__user.id,
                projectID=self.__project.id),
            True)

    def testAddStoryAsOwner(self):
        self.__addUserAsOwner()
        self.assertEquals(
            user_manager.canCreateStoryInProject(
                userID=self.__user.id,
                projectID=self.__project.id),
            True)

    def testAddStoryNoAssoc(self):
        self.assertEquals(
            user_manager.canCreateStoryInProject(
                userID=self.__user.id,
                projectID=self.__project.id),
            False)

    def testEditStoryNoAssoc(self):
        self.assertEquals(
            user_manager.canEditStoryInProject(
                userID=self.__user.id,
                projectID=self.__project.id),
            False)

    def testEditStoryAsClient(self):
        self.__addUserAsClient()
        self.assertEquals(
            user_manager.canEditStoryInProject(
                userID=self.__user.id,
                projectID=self.__project.id),
            True)

    def testEditStoryAsDev(self):
        self.__addUserAsDev()
        self.assertEquals(
            user_manager.canEditStoryInProject(
                userID=self.__user.id,
                projectID=self.__project.id),
            True)

    def testEditStoryAsOwner(self):
        self.__addUserAsOwner()
        self.assertEquals(
            user_manager.canEditStoryInProject(
                userID=self.__user.id,
                projectID=self.__project.id),
            True)

    def testIsOwner_NoAssoc(self):
        self.assertEquals(
            user_manager.isOwner(
                userID=self.__user.id,
                projectID=self.__project.id),
            False)

    def testIsOwner_IsOwner(self):
        self.__addUserAsOwner()
        self.assertEquals(
            user_manager.isOwner(
                userID=self.__user.id,
                projectID=self.__project.id),
            True)

    def testIsOwner_IsOwner(self):
        self.__addUserAsDev()
        self.assertEquals(
            user_manager.isOwner(
                userID=self.__user.id,
                projectID=self.__project.id),
            False)
コード例 #41
0
class RoleTestCase(TestCase):
    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user = User(username="******", password="******")
        self.__user.save()

    def tearDown(self):
        self.__clear()

    def __clear(self):
        UserAssociation.objects.all().delete
        Project.objects.all().delete
        User.objects.all().delete

    def __addUserAsClient(self):
        ua = UserAssociation(project=self.__project,
                             user=self.__user,
                             role=user_association.ROLE_CLIENT)
        ua.save()

    def __addUserAsDev(self):
        ua = UserAssociation(project=self.__project,
                             user=self.__user,
                             role=user_association.ROLE_DEVELOPER)
        ua.save()

    def __addUserAsOwner(self):
        ua = UserAssociation(project=self.__project,
                             user=self.__user,
                             role=user_association.ROLE_OWNER)
        ua.save()

    def testAddStoryAsClient(self):
        self.__addUserAsClient()
        self.assertEquals(
            user_manager.canCreateStoryInProject(userID=self.__user.id,
                                                 projectID=self.__project.id),
            True)

    def testAddStoryAsDev(self):
        self.__addUserAsDev()
        self.assertEquals(
            user_manager.canCreateStoryInProject(userID=self.__user.id,
                                                 projectID=self.__project.id),
            True)

    def testAddStoryAsOwner(self):
        self.__addUserAsOwner()
        self.assertEquals(
            user_manager.canCreateStoryInProject(userID=self.__user.id,
                                                 projectID=self.__project.id),
            True)

    def testAddStoryNoAssoc(self):
        self.assertEquals(
            user_manager.canCreateStoryInProject(userID=self.__user.id,
                                                 projectID=self.__project.id),
            False)

    def testEditStoryNoAssoc(self):
        self.assertEquals(
            user_manager.canEditStoryInProject(userID=self.__user.id,
                                               projectID=self.__project.id),
            False)

    def testEditStoryAsClient(self):
        self.__addUserAsClient()
        self.assertEquals(
            user_manager.canEditStoryInProject(userID=self.__user.id,
                                               projectID=self.__project.id),
            True)

    def testEditStoryAsDev(self):
        self.__addUserAsDev()
        self.assertEquals(
            user_manager.canEditStoryInProject(userID=self.__user.id,
                                               projectID=self.__project.id),
            True)

    def testEditStoryAsOwner(self):
        self.__addUserAsOwner()
        self.assertEquals(
            user_manager.canEditStoryInProject(userID=self.__user.id,
                                               projectID=self.__project.id),
            True)

    def testIsOwner_NoAssoc(self):
        self.assertEquals(
            user_manager.isOwner(userID=self.__user.id,
                                 projectID=self.__project.id), False)

    def testIsOwner_IsOwner(self):
        self.__addUserAsOwner()
        self.assertEquals(
            user_manager.isOwner(userID=self.__user.id,
                                 projectID=self.__project.id), True)

    def testIsOwner_IsOwner(self):
        self.__addUserAsDev()
        self.assertEquals(
            user_manager.isOwner(userID=self.__user.id,
                                 projectID=self.__project.id), False)
コード例 #42
0
 def test_can_user_access_project_cant(self):
     p = Project(title="title", description="desc")
     p.save()
     self.assertEqual(
         models.project_api.can_user_access_project(self.__user.id, p.id),
         False)
コード例 #43
0
 def test_get_project_users_one(self):
     p = Project(title="title", description="desc")
     p.save()
     models.project_api.add_user_to_project(
         p.id, self.__user.username, models.user_association.ROLE_DEVELOPER)
     self.assertEqual(models.project_api.get_all_projects().count(), 1)
コード例 #44
0
class ProjectTestCase(TestCase):
    
    def setUp(self):
        self.__clear()
        
        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user = User(username="******", password="******")
        self.__user.save()
        
    def tearDown(self):
        self.__clear()
        
    def __clear(self):
        UserAssociation.objects.all().delete
        Project.objects.all().delete
        User.objects.all().delete
       
    def test_get_project_stories(self):
        p = Project(title="title", description="desc")
        p.save()
        iterations = models.project_api.get_iterations_for_project(p)
        stories = models.story.get_stories_for_project(p)
        self.assertEqual(False, stories.exists())
        
    def test_get_project_stories_one(self):
        p = Project(title="title", description="desc")
        p.save()
        models.story.create_story(p, {"title" : "title",
                                                   "description" : "desc",
                                                   "reason" : "reason",
                                                   "test" : "test",
                                                   "status" : 1})
        
        iterations = models.project_api.get_iterations_for_project(p)
        stories = models.story.get_stories_for_project(p)
        self.assertEqual(True, stories.exists())
        
    def test_create_story_pass(self):
        fields = {"title" : "title",
                  "description" : "desc",
                  "reason" : "reason",
                  "test" : "test",
                  "status" : 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
    
    def test_create_story_fail(self):
        fields = {"title" : "title",
                  "description" : "desc",
                  "reason" : "reason",
                  "test" : "test",
                  "status" : 1}
        
        #pass a null project
        s = models.story.create_story(None, fields)
        self.assertEqual(0, self.__project.story_set.count())
        
        #create a project, but don't save it
        p = Project(title="title", description="description")
        try:
            with transaction.atomic():
                s = models.story.create_story(p, fields)
        except Exception:
            pass
        self.assertEqual(0, self.__project.story_set.count())
         
    def test_delete_story_pass(self):
        fields = {"title" : "title",
                  "description" : "desc",
                  "reason" : "reason",
                  "test" : "test",
                  "status" : 1}
        s = models.story.create_story( self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        models.story.delete_story(s.id)
        self.assertEqual(0, self.__project.story_set.count())
        
    def test_delete_story_fail(self):
        fields = {"title" : "title",
                  "description" : "desc",
                  "reason" : "reason",
                  "test" : "test",
                  "status" : 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        models.story.delete_story(s.id - 1)
        self.assertEqual(1, self.__project.story_set.count())
コード例 #45
0
 def test_get_project_stories(self):
     p = Project(title="title", description="desc")
     p.save()
     iterations = models.project_api.get_iterations_for_project(p)
     stories = models.story.get_stories_for_project(p)
     self.assertEqual(False, stories.exists())
コード例 #46
0
class ProjectTestCase(TestCase):

    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user = User(username="******", password="******")
        self.__user.save()

    def tearDown(self):
        self.__clear()

    def __clear(self):
        UserAssociation.objects.all().delete
        Project.objects.all().delete
        User.objects.all().delete  
        
    def test_create_new_task(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        task = {'description': 'Test Task'}
        t = models.task.create_task(s, task)
        self.assertEqual('Test Task', t.__str__())


    def test_get_task_from_story(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        task = {'description': 'Test Task'}
        t = models.task.create_task(s, task)
        self.assertEqual('Test Task', t.__str__())
        self.assertIsNotNone(models.task.get_tasks_for_story(s))
    
    def test_get_task_from_null_story(self):
        task = models.task.get_tasks_for_story(None)
        self.assertIsNone(task)
    
    def test_create_null_task_from_story(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count()) 
        t = models.task.create_task(s, None)
        self.assertIsNone(t)
        
    def test_create_task_from_null_story(self):
        task = {'description': 'Test Task'}
        t = models.task.create_task(None, task)
        self.assertIsNone(t)
        
    
    def test_get_task_from_id(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        task = {'description': 'Test Task'}
        t = models.task.create_task(s, task)
        self.assertEqual('Test Task', t.__str__())
        self.assertIsNotNone(models.task.get_task(t.id))
    
    def test_get_task_from_invalid_id(self):
        self.assertIsNone(models.task.get_task(-1000000))
    
    def test_get_all_tasks(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        task = {'description': 'Test Task'}
        t = models.task.create_task(s, task)
        self.assertEqual('Test Task', t.__str__())
        self.assertEqual(1, models.task.get_all_tasks().count())
        

            
コード例 #47
0
class UserTestCase(TestCase):

    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user1 = User(username="******", password="******")
        self.__user1.save()
	self.__user2 = User(username="******", password="******")
        self.__user2.save()
	self.__user3 = User(username="******", password="******")
        self.__user3.save()
	self.__user = User(username="******", password="******")
        self.__user.save()

    def tearDown(self):
        self.__clear()

    def __clear(self):
        UserAssociation.objects.all().delete
        Project.objects.all().delete
        User.objects.all().delete
    
    def __addUserAsOwner(self):
        uao = UserAssociation(
            project=self.__project,
            user = self.__user2,
            role=user_association.ROLE_OWNER)
        uao.save()
        
    def __addUserAsClient(self):
        ua = UserAssociation(
            project=self.__project,
            user=self.__user1,
            role=user_association.ROLE_CLIENT)
        ua.save()

    def __addUserAsDev(self):
        ua = UserAssociation(
            project=self.__project,
            user=self.__user3,
            role=user_association.ROLE_DEVELOPER)
        ua.save()
 

    def test_user_owns_project_true(self):
       # owner = User(
        #    username="******",
        #    password="******",
        #    email="*****@*****.**")
       # owner.save()

        project = models.project_api.create_project(
            self.__user2, {
                'title': 'title', 'description': 'description'})
        self.assertEquals(
            models.project_api.user_owns_project(
                self.__user2,
                project),
            True)
    def test_user_owns_project_false(self):

        project = models.project_api.create_project(
            self.__user2, {
                'title': 'title', 'description': 'description'})
        self.assertEquals(
            models.project_api.user_owns_project(
                self.__user1,
                project),
            False)

    def testAddStoryAsOwner(self):
        self.__addUserAsOwner()
        self.assertEquals(
            user_manager.canCreateStoryInProject(
                userID= self.__user2.id,
                projectID=self.__project.id),
            True)

    def testEditStoryNoAssoc(self):
        self.assertEquals(
            user_manager.canEditStoryInProject(
                userID=self.__user1.id,
                projectID=self.__project.id),
            False)

    def testEditStoryAsClient(self):
         self.__addUserAsClient()
	 self.assertEquals(
            user_manager.canEditStoryInProject(
                userID=self.__user1.id,
                projectID=self.__project.id),
            True)

    def testIsOwner_IsOwner(self):
	self.__addUserAsOwner()
        self.assertEquals(
            user_manager.isOwner(
                userID=  self.__user2.id,
                projectID=self.__project.id),
            True)

    def testIsDeveloper_IsOwner(self):
        self.__addUserAsDev()
        self.assertEquals(
            user_manager.isOwner(
                userID=self.__user3.id,
                projectID=self.__project.id),
            False)
 def test_get_iterations_for_project_none(self):
     p = Project(title="title", description="desc")
     p.save()
     iterations = models.project_api.get_iterations_for_project(p)
     self.assertEqual(0, iterations.count())
コード例 #49
0
 def test_delete_project_pass(self):
     p = Project(title="title", description="desc")
     p.save()
     self.assertEqual(1, Project.objects.filter(id=p.id).count())
     models.project_api.delete_project(p)
     self.assertEqual(0, Project.objects.filter(id=p.id).count())
コード例 #50
0
 def test_get_project_stories(self):
     p = Project(title="title", description="desc")
     p.save()
     iterations = models.project_api.get_iterations_for_project(p)
     stories = models.story.get_stories_for_project(p)
     self.assertEqual(False, stories.exists())
コード例 #51
0
class ProjectTestCase(TestCase):

    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user = User(username="******", password="******")
        self.__user.save()

    def tearDown(self):
        self.__clear()

    def __clear(self):
        UserAssociation.objects.all().delete
        Project.objects.all().delete
        User.objects.all().delete

    def test_get_project_stories(self):
        p = Project(title="title", description="desc")
        p.save()
        iterations = models.project_api.get_iterations_for_project(p)
        stories = models.story.get_stories_for_project(p)
        self.assertEqual(False, stories.exists())

    def test_get_project_stories_one(self):
        p = Project(title="title", description="desc")
        p.save()
        models.story.create_story(p, {"title": "title",
                                      "description": "desc",
                                      "reason": "reason",
                                      "test": "test",
                                      "status": 1})

        iterations = models.project_api.get_iterations_for_project(p)
        stories = models.story.get_stories_for_project(p)
        self.assertEqual(True, stories.exists())

    def test_create_story_pass(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())

    def test_create_story_fail(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}

        # pass a null project
        s = models.story.create_story(None, fields)
        self.assertEqual(0, self.__project.story_set.count())

        # create a project, but don't save it
        p = Project(title="title", description="description")
        try:
            with transaction.atomic():
                s = models.story.create_story(p, fields)
        except Exception:
            pass
        self.assertEqual(0, self.__project.story_set.count())

    def test_delete_story_pass(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        models.story.delete_story(s.id)
        self.assertEqual(0, self.__project.story_set.count())

    def test_delete_story_fail(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        models.story.delete_story(s.id - 1)
        self.assertEqual(1, self.__project.story_set.count())
        
    def test_create_new_comment(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        comment = {'title': 'Test comment title', 'comment': 'Test comment body'} 
        c = models.story_comment.create_comment(s, comment)
        self.assertEqual('Test comment title', c.__str__())


    def test_get_comment_from_story(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        comment = {'title': 'Test comment title', 'comment': 'Test comment body'} 
        c = models.story_comment.create_comment(s, comment)
        self.assertEqual('Test comment title', c.__str__())
        self.assertIsNotNone(models.story_comment.get_comments_for_story(s))
    
    def test_get_comment_from_null_story(self):
        comment = models.story_comment.get_comments_for_story(None)
        self.assertIsNone(comment)
    
    def test_create_null_comment_from_story(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count()) 
        c = models.story_comment.create_comment(s, None)
        self.assertIsNone(c)
        
    def test_create_comment_from_null_story(self):
        comment = {'title': 'Test comment title', 'comment': 'Test comment body'} 
        c = models.story_comment.create_comment(None, comment)
        self.assertIsNone(c)
        
    
    def test_get_comment_from_id(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        comment = {'title': 'Test comment title', 'comment': 'Test comment body'} 
        c = models.story_comment.create_comment(s, comment)
        self.assertEqual('Test comment title', c.__str__())
        self.assertIsNotNone(models.story_comment.get_comment(c.id))
    
    def test_get_comment_from_invalid_id(self):
        self.assertIsNone(models.story_comment.get_comment(-1000000))
    
    def test_get_all_comments(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        comment = {'title': 'Test comment title', 'comment': 'Test comment body'} 
        c = models.story_comment.create_comment(s, comment)
        self.assertEqual('Test comment title', c.__str__())
        self.assertEqual(1, models.story_comment.get_all_comments().count())
        
    def test_attachments_file_attachment(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        models.story_attachment.create(s.id, SimpleUploadedFile('test_it.txt', 'This is some text to add to the file'))
        attach = story_attachment.get_attachments_for_story(s)
        self.assertIsNotNone(attach, "File attachment should exist")
        for a in story_attachment.get_all_attachments():
            story_attachment.delete(a.uuid)
        
        
    def test_attachments_file_no_attachment(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        attach = models.story_attachment.create(s.id, None)
        self.assertIsNone(attach, "File attachment should NOT exist")
            
    def test_attachments_file_no_story(self):
        attach = models.story_attachment.create(None, SimpleUploadedFile('test_it.txt', 'This is some text to add to the file'))
        
        self.assertIsNone(attach, "File attachment should NOT exist")
    
    def test_attachments_get_attachments_for_non_story(self):
       attach = story_attachment.get_attachments_for_story(None)
       self.assertIsNone(attach, "File attachment should NOT exist")
    
    def test_attachments_get_all_attachments(self):
       attach = story_attachment.get_all_attachments()
       self.assertEqual(0, attach.count())
    
    def test_attachments_file_attachment(self):
        fields = {"title": "title",
                  "description": "desc",
                  "reason": "reason",
                  "test": "test",
                  "status": 1}
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        models.story_attachment.create(s.id, SimpleUploadedFile('test_it.txt', 'This is some text to add to the file'))
        attach = story_attachment.get_attachments_for_story(s)
        self.assertIsNotNone(attach, "File attachment should exist")
        a = attach.first()
        self.assertIsNotNone(a.uuid, "File attachment uuid should exist")
        self.assertIsNotNone(a.story, "File attachment story should exist")
        self.assertIsNotNone(a.name, "File attachment name should exist")
        self.assertIsNotNone(a.file, "File attachment file should exist")
        self.assertIsNotNone(a.last_updated, "File attachment last_updated should exist")
        
        for a in story_attachment.get_all_attachments():
            story_attachment.delete(a.uuid)  
            
コード例 #52
0
class ProjectTestCase(TestCase):
    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user = User(username="******", password="******")
        self.__user.save()

    def tearDown(self):
        self.__clear()

    def __clear(self):
        UserAssociation.objects.all().delete
        Project.objects.all().delete
        User.objects.all().delete

    def test_create_new_task(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        task = {'description': 'Test Task'}
        t = models.task.create_task(s, task)
        self.assertEqual('Test Task', t.__str__())

    def test_get_task_from_story(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        task = {'description': 'Test Task'}
        t = models.task.create_task(s, task)
        self.assertEqual('Test Task', t.__str__())
        self.assertIsNotNone(models.task.get_tasks_for_story(s))

    def test_get_task_from_null_story(self):
        task = models.task.get_tasks_for_story(None)
        self.assertIsNone(task)

    def test_create_null_task_from_story(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        t = models.task.create_task(s, None)
        self.assertIsNone(t)

    def test_create_task_from_null_story(self):
        task = {'description': 'Test Task'}
        t = models.task.create_task(None, task)
        self.assertIsNone(t)

    def test_get_task_from_id(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        task = {'description': 'Test Task'}
        t = models.task.create_task(s, task)
        self.assertEqual('Test Task', t.__str__())
        self.assertIsNotNone(models.task.get_task(t.id))

    def test_get_task_from_invalid_id(self):
        self.assertIsNone(models.task.get_task(-1000000))

    def test_get_all_tasks(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }
        s = models.story.create_story(self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        task = {'description': 'Test Task'}
        t = models.task.create_task(s, task)
        self.assertEqual('Test Task', t.__str__())
        self.assertEqual(1, models.task.get_all_tasks().count())
コード例 #53
0
 def test_get_project_pass(self):
     p = Project(title="title", description="desc")
     p.save()
     self.assertEqual(p, models.project_api.get_project(p.id))
コード例 #54
0
class UserTestCase(TestCase):
    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user1 = User(username="******", password="******")
        self.__user1.save()
        self.__user2 = User(username="******", password="******")
        self.__user2.save()
        self.__user3 = User(username="******", password="******")
        self.__user3.save()
        self.__user = User(username="******", password="******")
        self.__user.save()

    def tearDown(self):
        self.__clear()

    def __clear(self):
        UserAssociation.objects.all().delete
        Project.objects.all().delete
        User.objects.all().delete

    def __addUserAsOwner(self):
        uao = UserAssociation(project=self.__project,
                              user=self.__user2,
                              role=user_association.ROLE_OWNER)
        uao.save()

    def __addUserAsClient(self):
        ua = UserAssociation(project=self.__project,
                             user=self.__user1,
                             role=user_association.ROLE_CLIENT)
        ua.save()

    def __addUserAsDev(self):
        ua = UserAssociation(project=self.__project,
                             user=self.__user3,
                             role=user_association.ROLE_DEVELOPER)
        ua.save()

    def test_user_owns_project_true(self):
        # owner = User(
        #    username="******",
        #    password="******",
        #    email="*****@*****.**")
        # owner.save()

        project = models.project_api.create_project(
            self.__user2, {
                'title': 'title',
                'description': 'description'
            })
        self.assertEquals(
            models.project_api.user_owns_project(self.__user2, project), True)

    def test_user_owns_project_false(self):

        project = models.project_api.create_project(
            self.__user2, {
                'title': 'title',
                'description': 'description'
            })
        self.assertEquals(
            models.project_api.user_owns_project(self.__user1, project), False)

    def testAddStoryAsOwner(self):
        self.__addUserAsOwner()
        self.assertEquals(
            user_manager.canCreateStoryInProject(userID=self.__user2.id,
                                                 projectID=self.__project.id),
            True)

    def testEditStoryNoAssoc(self):
        self.assertEquals(
            user_manager.canEditStoryInProject(userID=self.__user1.id,
                                               projectID=self.__project.id),
            False)

    def testEditStoryAsClient(self):
        self.__addUserAsClient()
        self.assertEquals(
            user_manager.canEditStoryInProject(userID=self.__user1.id,
                                               projectID=self.__project.id),
            True)

    def testIsOwner_IsOwner(self):
        self.__addUserAsOwner()
        self.assertEquals(
            user_manager.isOwner(userID=self.__user2.id,
                                 projectID=self.__project.id), True)

    def testIsDeveloper_IsOwner(self):
        self.__addUserAsDev()
        self.assertEquals(
            user_manager.isOwner(userID=self.__user3.id,
                                 projectID=self.__project.id), False)
コード例 #55
0
 def test_get_iterations_for_project_none(self):
     p = Project(title="title", description="desc")
     p.save()
     iterations = models.project_api.get_iterations_for_project(p)
     self.assertEqual(0, iterations.count())
コード例 #56
0
class ProjectTestCase(TestCase):
    def setUp(self):
        self.__clear()

        self.__project = Project(title="title", description="desc")
        self.__project.save()
        self.__user = User(username="******", password="******")
        self.__user.save()

    def tearDown(self):
        self.__clear()

    def __clear(self):
        UserAssociation.objects.all().delete
        Project.objects.all().delete
        User.objects.all().delete

    def test_get_project_stories(self):
        p = Project(title="title", description="desc")
        p.save()
        iterations = models.project_api.get_iterations_for_project(p)
        stories = models.story.get_project_stories(p.id)
        self.assertEqual(False, stories.exists())

    def test_get_project_stories_one(self):
        p = Project(title="title", description="desc")
        p.save()
        models.story.create_story(
            self.__user, p, {
                "title": "title",
                "description": "desc",
                "reason": "reason",
                "test": "test",
                "status": 1
            })

        iterations = models.project_api.get_iterations_for_project(p)
        stories = models.story.get_project_stories(p.id)
        self.assertEqual(True, stories.exists())

    def test_create_story_pass(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }
        s = models.story.create_story(self.__user, self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())

    def test_create_story_fail(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }

        #pass a null project
        s = models.story.create_story(self.__user, None, fields)
        self.assertEqual(0, self.__project.story_set.count())

        #create a project, but don't save it
        p = Project(title="title", description="description")
        s = models.story.create_story(self.__user, p, fields)
        self.assertEqual(0, self.__project.story_set.count())

    def test_delete_story_pass(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }
        s = models.story.create_story(self.__user, self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        models.story.delete_story(s.id)
        self.assertEqual(0, self.__project.story_set.count())

    def test_delete_story_fail(self):
        fields = {
            "title": "title",
            "description": "desc",
            "reason": "reason",
            "test": "test",
            "status": 1
        }
        s = models.story.create_story(self.__user, self.__project, fields)
        self.assertEqual(1, self.__project.story_set.count())
        models.story.delete_story(s.id - 1)
        self.assertEqual(1, self.__project.story_set.count())