def test_itemWithoutJiraInfoDoesNotDecorate(self): item = PivotalTrackerItem(Story()) description = "description" summary = "summary" item.withDescription(description) item.withSummary(summary) self.assertEqual(item.decoratedStory().GetDescription(), description) self.assertEqual(item.decoratedStory().GetName(), summary)
def test_cannotSetRequestorForStory(self): story = Story() requestor = "me" story.SetRequestedBy(requestor) item = PivotalTrackerItem(story) item.withRequestor(PivotalUser(requestor)) self.assertEqual([], item.decoratedStory().UPDATE_FIELDS)
def test_cannotSetOwnerForStory(self): story = Story() owner = "me" story.SetOwnedBy(owner) item = PivotalTrackerItem(story) item.withOwner(PivotalUser(owner)) self.assertEqual([], item.decoratedStory().UPDATE_FIELDS)
def test_canSetOwner(self): item = PivotalTrackerItem() owner = "me" item.withOwner(PivotalUser(owner)) self.assertEqual(owner, item.owner().pivotal()) self.assertEqual(owner, item.underlying().GetOwnedBy()) self.assertTrue('owned_by' in item.decoratedStory().UPDATE_FIELDS)
def test_canSetRequestor(self): item = PivotalTrackerItem() requestor = "me" item.withRequestor(PivotalUser(requestor)) self.assertEqual(requestor, item.requestor().pivotal()) self.assertEqual(requestor, item.underlying().GetRequestedBy()) self.assertTrue('requested_by' in item.decoratedStory().UPDATE_FIELDS)
def test_cannotAddNoneStatus(self): story = Story() startingStatus = "unscheduled" story.SetCurrentState(startingStatus) item = PivotalTrackerItem(story) item.withStatus(None) self.assertEqual(startingStatus, item.status().pivotal()) self.assertEqual([], item.decoratedStory().UPDATE_FIELDS)
def test_cannotSetNoneTypeForStory(self): story = Story() defaultStoryType = "feature" story.SetStoryType(defaultStoryType) item = PivotalTrackerItem(story) item.withType(None) self.assertEqual(story.GetStoryType(), defaultStoryType) self.assertEqual([], item.decoratedStory().UPDATE_FIELDS)
def test_whenCommentAddedStoryIsAvailableToUpdate(self): story = Story() story.story_id = 1234 item = PivotalTrackerItem(story) comment = "blah" item.addComment(comment) storyToBeUpdated = item.decoratedStory() self.assertEqual(story.story_id, storyToBeUpdated.GetStoryId())
def test_canDecorateStorySummaryWithJiraInfo(self): item = PivotalTrackerItem() jiraKey = "TEST-pti1234" summary = "summary" decoratedSummary = "[TEST-pti1234]: summary" item.withSummary(summary) item.withJiraKey(jiraKey) self.assertEqual(item.decoratedStory().GetName(), decoratedSummary)
def test_canDecorateStoryDescriptionWithJiraInfo(self): item = PivotalTrackerItem() jiraUrl = "https://www.jira.com/browse/TEST-pti1234" description = "description" decoratedDescription = "https://www.jira.com/browse/TEST-pti1234\ndescription" item.withDescription(description) item.withJiraUrl(jiraUrl) self.assertEqual(item.decoratedStory().GetDescription(), decoratedDescription)
def test_doNotUpdateJiraKeyOnStoryWhenUpdatedWithDuplicate(self): story = Story() updateJiraId = "TEST-12345" story.jira_id = updateJiraId item = PivotalTrackerItem(story) item.withJiraKey(updateJiraId) storyToUpdate = item.decoratedStory() self.assertEqual(None, storyToUpdate.GetName()) self.assertEqual([], storyToUpdate.UPDATE_FIELDS)
def test_whenTryingToChangeStatusToDuplicateStatusNoUpdateIsMade(self): summary = "summary" story = Story() story.SetName(summary) item = PivotalTrackerItem(story) item.withSummary(summary) storyToUpdate = item.decoratedStory() self.assertEqual(None, storyToUpdate.GetName()) self.assertEqual([], storyToUpdate.UPDATE_FIELDS)
def test_doNotUpdateJiraUrlOnStoryWhenUpdatedWithDuplicate(self): story = Story() updateUrl = "http://www.updated.com" story.jira_url = updateUrl item = PivotalTrackerItem(story) item.withJiraUrl(updateUrl) storyToUpdate = item.decoratedStory() self.assertEqual(None, storyToUpdate.GetDescription()) self.assertEqual([], storyToUpdate.UPDATE_FIELDS)
def test_whenTryingToChangeDescriptionToDuplicateDescriptionNoUpdateIsMade(self): description = "description" story = Story() story.SetDescription(description) item = PivotalTrackerItem(story) item.withDescription(description) storyToUpdate = item.decoratedStory() self.assertEqual(None, storyToUpdate.GetDescription()) self.assertEqual([], storyToUpdate.UPDATE_FIELDS)
def test_canUpdateJiraKeyOnStory(self): story = Story() story.jira_id = "TEST-pti1234" updateJiraId = "TEST-12345" item = PivotalTrackerItem(story) item.withJiraKey(updateJiraId) self.assertEqual(item.jiraKey(), updateJiraId) storyToUpdate = item.decoratedStory() self.assertEqual("[" + updateJiraId + "]: None", storyToUpdate.GetName()) self.assertTrue('name' in storyToUpdate.UPDATE_FIELDS)
def test_canUpdateJiraUrlOnStory(self): story = Story() story.jira_url = "http://www.test.com" updateUrl = "http://www.updated.com" item = PivotalTrackerItem(story) item.withJiraUrl(updateUrl) self.assertEqual(item.jiraUrl(), updateUrl) storyToUpdate = item.decoratedStory() self.assertEqual(updateUrl+"\nNone", storyToUpdate.GetDescription()) self.assertTrue('description' in storyToUpdate.UPDATE_FIELDS)
def test_whenTryingToChangeDescriptionToDuplicateDescriptionNoUpdateIsMade( self): description = "description" story = Story() story.SetDescription(description) item = PivotalTrackerItem(story) item.withDescription(description) storyToUpdate = item.decoratedStory() self.assertEqual(None, storyToUpdate.GetDescription()) self.assertEqual([], storyToUpdate.UPDATE_FIELDS)
def test_canUpdateJiraUrlOnStory(self): story = Story() story.jira_url = "http://www.test.com" updateUrl = "http://www.updated.com" item = PivotalTrackerItem(story) item.withJiraUrl(updateUrl) self.assertEqual(item.jiraUrl(), updateUrl) storyToUpdate = item.decoratedStory() self.assertEqual(updateUrl + "\nNone", storyToUpdate.GetDescription()) self.assertTrue('description' in storyToUpdate.UPDATE_FIELDS)
def test_canSetTypeForStory(self): story = Story() defaultStoryType = "feature" story.SetStoryType(defaultStoryType) item = PivotalTrackerItem(story) self.assertEqual(defaultStoryType, item.type()) type = "bug" item.withType(type) self.assertEqual(story.GetStoryType(), type) self.assertEqual(type, item.type()) self.assertTrue('story_type' in item.decoratedStory().UPDATE_FIELDS)
def test_canSetStatusForStory(self): story = Story() startingStatus = "unscheduled" story.SetCurrentState(startingStatus) accepted = "Accepted" item = PivotalTrackerItem(story) self.assertEqual(startingStatus, item.status().pivotal()) status = mock() when(status).pivotal().thenReturn(accepted) item.withStatus(status) self.assertEqual(story.GetCurrentState(), accepted) self.assertEqual(status, item.status()) self.assertTrue('current_state' in item.decoratedStory().UPDATE_FIELDS)