def testSprints(dataConnection):
    getAllSprintsQuery = ScrumblesData.Query.getAllSprints
    testSprint = ScrumblesObjects.Sprint()
    testSprint.sprintName = 'UniqueSprintName'
    testSprint.sprintStartDate = datetime.date(2018,1,31)
    testSprint.sprintDueDate = datetime.date(2018,2,27)

    testSprintCreationQuery = ScrumblesData.Query.createObject(testSprint)
    assert testSprintCreationQuery is not None
    dataConnection.connect()
    allSprintsQueryResult = dataConnection.getData(getAllSprintsQuery)
    dataConnection.setData(testSprintCreationQuery)
    allNewSprintsQueryResult = dataConnection.getData(getAllSprintsQuery)
    dataConnection.close()

    assert len(allNewSprintsQueryResult) != len(allSprintsQueryResult)

    testSprintSearchQuery = ScrumblesData.SprintQuery.getSprintBySprintID(testSprint.sprintID)
    assert testSprintSearchQuery is not None
    dataConnection.connect()
    foundTestSprintResult = dataConnection.getData(testSprintSearchQuery)
    dataConnection.close()
    foundSprint = ScrumblesObjects.Sprint(foundTestSprintResult[0])
    assert foundSprint.sprintName == testSprint.sprintName
    dataConnection.connect()
    dataConnection.setData(ScrumblesData.Query.deleteObject(foundSprint))
    foundTestSprintResult = dataConnection.getData(testSprintSearchQuery)
    dataConnection.close()
    assert foundTestSprintResult == ()
    print('Sprint',testSprint.sprintID,' Data successfully created and deleted on remote server')
Esempio n. 2
0
    def ok(self):
        if self.sprint is None:
            sprint = ScrumblesObjects.Sprint()
        else:
            sprint = self.sprint


        sprint.sprintName = self.sprintNameEntry.get()
        sprint.sprintStartDate = self.getDate('start')
        sprint.sprintDueDate = self.getDate('due')

        if self.oldSprintName is None or self.oldSprintName != sprint.sprintName:
            self.validateName(sprint.sprintName)

        if not self.isTest:
            projectName = self.assignSprintToObject.get()
            for P in self.dataBlock.projects:
                if P.projectName == projectName:
                    sprint.projectID = P.projectID

        if not self.isTest:
            self.writeData(sprint)

        self.exit()
Esempio n. 3
0
    def updateAllObjects(self):
        if self.firstLoad:
            time.sleep(1)
        self.isLoading = True
        funcStartTime = time.clock()

        self.conn.connect()
        self.users.clear()
        self.items.clear()
        self.projects.clear()
        self.comments.clear()
        self.tags.clear()
        self.sprints.clear()
        self.itemMap = {}
        self.sprintMap = {}
        self.commentMap = {}
        self.projectMap = {}
        self.userMap = {}
        #print('getting tables')
        loopStartTime = time.clock()
        userTable = self.conn.getData(Query.getAllUsers)
        itemTable = self.conn.getData(Query.getAllCards)
        projectTable = self.conn.getData(Query.getAllProjects)
        commentTable = self.conn.getData(Query.getAllComments)
        sprintTable = self.conn.getData(Query.getAllSprints)
        userToProjectRelationTable = self.conn.getData(Query.getAllUserProject)
        itemToProjectRelationTable = self.conn.getData(Query.getAllProjectItem)
        itemTimeLineTable = self.conn.getData('SELECT * FROM CardTimeLine')
        epicTable = self.conn.getData('SELECT * FROM EpicTable')

        self.conn.close()

        #print('Tables loaded in %fms' % ((time.clock()-loopStartTime)*1000) )

        loopStartTime = time.clock()
        #print('splicing vectors')

        timeLineMap = self.mapTimeline(itemTimeLineTable)
        epicMap = self.buildEpicMap(epicTable)
        for comment in commentTable:
            Comment = ScrumblesObjects.Comment(comment)
            self.comments.append(Comment)
            self.commentMap[Comment.commentID] = Comment
        #print('Comment List Built in %fms' % ((time.clock() - loopStartTime) * 1000))

        loopStartTime = time.clock()
        for item in itemTable:
            Item = ScrumblesObjects.Item(item)
            Item.listOfComments = [
                C for C in self.comments if C.commentItemID == Item.itemID
            ]
            self.applyItemLine(Item, timeLineMap)
            # try:
            #     Item.itemTimeLine = timeLineMap[Item.itemID]
            # except KeyError:
            #     timeLineMap = self.reloadTimeLineMap()
            if 'AssignedToSPrint' in Item.itemTimeLine:
                Item.itemTimeLine['AssignedToSprint'] = Item.itemTimeLine[
                    'AssignedToSPrint']
            #self.populateItemTimeLine(Item,timeLineMap)
            self.itemMap[Item.itemID] = Item
            self.items.append(Item)
        #print('Item List Built in %fms' % ((time.clock() - loopStartTime) * 1000))

        loopStartTime = time.clock()
        for I in self.items:
            if I.itemID in epicMap:  #epicMap[subitemID]->EpicID
                self.itemMap[epicMap[I.itemID]].subItemList.append(
                    I)  #itemMap[itemID]->Item
        #print('Item subitems spliced in %fms' % ((time.clock() - loopStartTime) * 1000))

        loopStartTime = time.clock()
        for user in userTable:
            User = ScrumblesObjects.User(user)
            User.listOfAssignedItems = [
                I for I in self.items if I.itemUserID == User.userID
            ]
            User.listOfComments = [
                C for C in self.comments if C.commentUserID == User.userID
            ]
            self.users.append(User)
            self.userMap[User.userID] = User
        #print('User List Built in %fms' % ((time.clock() - loopStartTime) * 1000))

        loopStartTime = time.clock()
        for sprint in sprintTable:
            Sprint = ScrumblesObjects.Sprint(sprint)
            Sprint.listOfAssignedItems = [
                I for I in self.items if I.itemSprintID == Sprint.sprintID
            ]
            Sprint.listOfAssignedUsers = [
                U for U in self.users if U.userID in
                [I.itemUserID for I in Sprint.listOfAssignedItems]
            ]
            self.sprints.append(Sprint)
            self.sprintMap[Sprint.sprintID] = Sprint
        #print('Sprint List Built in %fms' % ((time.clock() - loopStartTime) * 1000))

        loopStartTime = time.clock()
        for project in projectTable:
            Project = ScrumblesObjects.Project(project)
            Project.listOfAssignedSprints = [
                S for S in self.sprints if S.projectID == Project.projectID
            ]
            self.projects.append(Project)
            self.projectMap[Project.projectID] = Project
        #print('Project List Built in %fms' % ((time.clock() - loopStartTime) * 1000))

        loopStartTime = time.clock()
        for user in self.users:
            for dict in userToProjectRelationTable:
                if dict['UserID'] == user.userID:
                    for project in self.projects:
                        if dict['ProjectID'] == project.projectID:
                            user.listOfProjects.append(project)
        #print('Users Spliced to Projects in %fms' % ((time.clock() - loopStartTime) * 1000))

        loopStartTime = time.clock()
        for project in self.projects:
            for dict in userToProjectRelationTable:
                if dict['ProjectID'] == project.projectID:
                    for user in self.users:
                        if dict['UserID'] == user.userID:
                            project.listOfAssignedUsers.append(user)
            #print('Projects spliced to users in %fms' % ((time.clock() - loopStartTime) * 1000))

            loopStartTime = time.clock()
            for dict in itemToProjectRelationTable:
                if dict['ProjectID'] == project.projectID:
                    for item in self.items:
                        if dict['ItemID'] == item.itemID:
                            item.projectID = project.projectID

                            project.listOfAssignedItems.append(item)
        #print('Items Spliced to Projects in %fms' % ((time.clock() - loopStartTime) * 1000))

        #self.debugDump()
        #print('Data Loaded in %fs' % (time.clock()-funcStartTime))
        self.isLoading = False
        return True
PASS = '******'
FAIL = '\033[91m'
SLEEP = 3

logging.basicConfig(format='%(levelname)s:  %(asctime)s:  %(message)s',
                    filename='ScrumblesTest.log',
                    level=logging.DEBUG)
logging.info('Application starting')

testRun = {}

db = DataBlock.DataBlock(mode='test')
db.updateAllObjects()

Tsprint = ScrumblesObjects.Sprint()
Tsprint.sprintName = 'TUnit Test'
Tsprint.sprintStartDate = datetime.now()
Tsprint.sprintDueDate = datetime.now()
Tsprint.projectID = 0

print(type(Tsprint))
print(repr(Tsprint))
print(type(Tsprint) is ScrumblesObjects.Sprint)
print(type(Tsprint) is data.ScrumblesObjects.Sprint)

TItem = ScrumblesObjects.Item()
TItem.itemTitle = "Test Item to add to Test Sprint"
TItem.itemDescription = 'Test TEST TEST'
TItem.itemPriority = 0
TItem.itemStatus = 0
Esempio n. 5
0
    user = ScrumblesObjects.User(element)
    assert user.userID == element['UserID']
    assert user.userName == element['UserName']
    assert user.userEmailAddress == element['UserEmailAddress']
    assert user.userPassword == element['UserPassword']
    assert user.userRole == element['UserRole']
    listOfUsers.append(user)
assert len(listOfUsers) == len(allUsersQueryResult)

for element in allSprintsQueryResult:
    #assert len(element) == 4  this is dumb, number of sprints change
    assert 'SprintID' in element
    assert 'StartDate' in element
    assert 'DueDate' in element
    assert 'SprintName' in element
    sprint = ScrumblesObjects.Sprint(element)
    assert sprint.sprintID == element['SprintID']
    assert sprint.sprintStartDate == element['StartDate']
    assert sprint.sprintDueDate == element['DueDate']
    assert sprint.sprintName == element['SprintName']
    listOfSprints.append(sprint)
assert len(listOfSprints) == len(allSprintsQueryResult)

for element in allItemsQueryResult:
    assert len(element) == 11
    assert 'CardID' in element
    assert 'CardType' in element
    assert 'CardPriority' in element
    assert 'CardTitle' in element
    assert 'CardDescription' in element
    assert 'CardCreatedDate' in element