Exemplo n.º 1
0
    def test_not_allow_join(self):
        create_entity(User('Bob'))
        task = Task('title1', 'detail1', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11, 11))
        task.owner = User.query.get(2)
        create_entity(task)
        task = Task('title2', 'detail2', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11, 11))
        task.owner = User.query.get(1)
        create_entity(task)

        rv = self.app.put('/jointask/1')

        self.assertEquals(403, rv.status_code)
Exemplo n.º 2
0
    def test_task_burning(self):
        task = Task('title2',
                    'detail2',
                    estimate=10,
                    price=10,
                    status='PROGRESS',
                    start_time=datetime(2012, 11, 11, 10, 0, 0),
                    team=Team.query.get(1))
        task.owner = User.query.get(1)
        create_entity(task)
        create_entity(
            Task('title1',
                 'detail1',
                 estimate=10,
                 price=5,
                 status='DONE',
                 start_time=datetime(2012, 11, 11, 12, 0, 0),
                 team=Team.query.get(1)))
        create_entity(
            Task('title3',
                 'detail3',
                 estimate=0,
                 price=5,
                 status='READY',
                 start_time=datetime(2012, 11, 10, 12, 0, 0),
                 team=Team.query.get(1)))

        miami.zeroing()

        burning = Burning.query.get(1)
        self.assertEquals(datetime(2012, 11, 11, 0, 0, 0), burning.day)
        self.assertEquals(5, burning.burning)
        self.assertEquals(15, burning.remaining)
        self.assertEquals(Team.query.get(1), burning.team)
Exemplo n.º 3
0
    def test_leave_paired(self):
        task = Task('title2', 'detail2', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11,
                    11), team=Team.query.get(1))
        task.owner = User.query.get(2)
        task.partner = User.query.get(1)
        create_entity(task)

        rv = self.app.put('/leavetask/1')

        self.assertEquals(200, rv.status_code)
        self.assertEquals({
                          "object": {
                              "status": "PROGRESS",
                              "owner": {
                                  "gravater": "91f376c4b36912e5075b6170d312eab5",
                                  "name": "Bob"
                              },
                              "consuming": "1",
                              'priority': 100,
                              "time_slots": [
                                  {
                                      "partner": {
                                          "gravater": "91f376c4b36912e5075b6170d312eab5",
                                          "name": "Mike"
                                      },
                                      "start_time": "3 months ago",
                                      "consuming_hours": "1",
                                      "user": {
                                          "gravater": "91f376c4b36912e5075b6170d312eab5",
                                          "name": "Bob"
                                      },
                                      "bar_width": "100.00%"
                                  }
                              ],
                              "title": "title2",
                              "estimate": 10,
                              "partner": {
                              },
                              "price": 10,
                              "team": {
                                  'id':1,
                                  "color": "2a33d8",
                                  "name": "Log"
                              },
                              "id": 1,
                              'last_updated': 'just now',
                              'created_time': 'just now',
                              "detail": "detail2"
                          }
                          }, json.loads(rv.data))

        task = Task.query.get(1)
        self.assertIsNone(task.partner)
        self.assertEquals('PROGRESS', task.status)
        self.assertEquals(1, task.time_slots.count())
        self.assertEquals(datetime(2012, 11, 11, 1, 0, 0), task.start_time)
        self.assertEquals(3600, task.time_slots[0].consuming)
        self.assertEquals('Bob', task.time_slots[0].user.name)
        self.assertEquals('Mike', task.time_slots[0].partner.name)
Exemplo n.º 4
0
    def test_owner_one_task(self):
        task = Task('title2', 'detail2', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11, 11))
        task.owner = User.query.get(1)
        create_entity(task)
        create_entity(Task('title3', 'detail3', estimate=10, price=10, status='READY', start_time=datetime(2012, 11, 11)))
        rv = self.app.put('/tasks/PROGRESS/2')

        self.assertEquals(403, rv.status_code)
Exemplo n.º 5
0
    def test_task_toJSON(self):
        team = Team('Log')
        team.id = 1
        task = Task('title1', 'detail', status='DONE', price=1, estimate=4, team=team)
        task.id = 1
        task.owner = User('Mike')

        self.assertEquals({'id': 1, 'title': 'title1', 'detail': 'detail', 'status': 'DONE', 'price': 1, 'estimate': 4,'priority': 100,'time_slots': [], 'consuming': '0','created_time': 'just now', 'last_updated': 'just now', 'team': {
                          'name': 'Log', 'color': '2a33d8', 'id':1}, 'owner': {'name': 'Mike', 'gravater': '91f376c4b36912e5075b6170d312eab5'}, 'partner': {}}, task.toJSON())
Exemplo n.º 6
0
    def test_not_allow_to_progress(self):
        create_entity(User('Bob'))
        task = Task('title1', 'detail1', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11, 11))
        task.partner = User.query.get(1)
        task.owner = User.query.get(2)
        create_entity(task)
        create_entity(Task('title2', 'detail2', estimate=10, price=10, status='READY', start_time=datetime(2012, 11, 11)))

        rv = self.app.put('/tasks/PROGRESS/2')

        self.assertEquals(403, rv.status_code)
Exemplo n.º 7
0
    def test_progress_to_ready(self):
        task = Task('title2', 'detail2', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11, 11), team=Team.query.get(1))
        task.owner = User.query.get(1)
        create_entity(task)

        rv = self.app.put('/tasks/READY/1')

        self.assertEquals(200, rv.status_code)
        task = Task.query.get(1)
        self.assertEquals('READY', task.status)
        self.assertEquals(3600, task.consuming)
        self.assertEquals(1, task.time_slots[0].user.id)
Exemplo n.º 8
0
    def test_task_zeroing(self):
        task = Task('title2', 'detail2', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11, 11, 10, 0, 0), team=Team.query.get(1))
        task.owner = User.query.get(1)
        create_entity(task)

        miami.zeroing()

        task = Task.query.get(1)
        self.assertEquals('READY', task.status)
        self.assertIsNone(task.partner)
        self.assertEquals(28800.0, task.consuming)
        self.assertEquals(1, task.time_slots.count())
Exemplo n.º 9
0
    def test_ready_to_progress_noauth(self):
        task = Task('title2', 'detail2', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11, 11))
        mike = User.query.get(1)
        task.owner = mike
        task.time_slots.append(TimeSlot(task.start_time, 20, mike))
        create_entity(task)
        create_entity(User('Bob'))
        self.logout()
        self.login('Bob', '')

        rv = self.app.put('/tasks/PROGRESS/1')

        self.assertEquals(401, rv.status_code)
Exemplo n.º 10
0
    def test_not_allow_join(self):
        create_entity(User('Bob'))
        task = Task('title1',
                    'detail1',
                    estimate=10,
                    price=10,
                    status='PROGRESS',
                    start_time=datetime(2012, 11, 11))
        task.owner = User.query.get(2)
        create_entity(task)
        task = Task('title2',
                    'detail2',
                    estimate=10,
                    price=10,
                    status='PROGRESS',
                    start_time=datetime(2012, 11, 11))
        task.owner = User.query.get(1)
        create_entity(task)

        rv = self.app.put('/jointask/1')

        self.assertEquals(403, rv.status_code)
Exemplo n.º 11
0
    def test_task_burning(self):
        task = Task('title2', 'detail2', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11, 11, 10, 0, 0), team=Team.query.get(1))
        task.owner = User.query.get(1)
        create_entity(task)
        create_entity(Task('title1', 'detail1', estimate=10, price=5, status='DONE', start_time=datetime(2012, 11, 11, 12, 0, 0), team=Team.query.get(1)))
        create_entity(Task('title3', 'detail3', estimate=0, price=5, status='READY', start_time=datetime(2012, 11, 10, 12, 0, 0), team=Team.query.get(1)))

        miami.zeroing()

        burning = Burning.query.get(1)
        self.assertEquals(datetime(2012, 11, 11, 0, 0, 0),burning.day)
        self.assertEquals(5,burning.burning)
        self.assertEquals(15,burning.remaining)
        self.assertEquals(Team.query.get(1),burning.team)
Exemplo n.º 12
0
    def test_multi_timeslots(self):
        create_entity(User('Bob'))
        task = Task('title2', 'detail2', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11, 11), team=Team.query.get(1))
        task.time_slots.append(TimeSlot(task.start_time, 3600, User.query.get(1)))
        task.owner = User.query.get(2)
        create_entity(task)
        self.logout()
        self.login('Bob', '')

        rv = self.app.put('/tasks/READY/1')

        self.assertEquals(200, rv.status_code)
        task = Task.query.get(1)
        self.assertEquals('READY', task.status)
        self.assertEquals(7200, task.consuming)
        self.assertEquals(1, task.time_slots[0].user.id)
        self.assertEquals(2, task.time_slots[1].user.id)
Exemplo n.º 13
0
    def test_task_zeroing(self):
        task = Task('title2',
                    'detail2',
                    estimate=10,
                    price=10,
                    status='PROGRESS',
                    start_time=datetime(2012, 11, 11, 10, 0, 0),
                    team=Team.query.get(1))
        task.owner = User.query.get(1)
        create_entity(task)

        miami.zeroing()

        task = Task.query.get(1)
        self.assertEquals('READY', task.status)
        self.assertIsNone(task.partner)
        self.assertEquals(28800.0, task.consuming)
        self.assertEquals(1, task.time_slots.count())
Exemplo n.º 14
0
    def test_not_allow_to_progress(self):
        create_entity(User('Bob'))
        task = Task('title1',
                    'detail1',
                    estimate=10,
                    price=10,
                    status='PROGRESS',
                    start_time=datetime(2012, 11, 11))
        task.partner = User.query.get(1)
        task.owner = User.query.get(2)
        create_entity(task)
        create_entity(
            Task('title2',
                 'detail2',
                 estimate=10,
                 price=10,
                 status='READY',
                 start_time=datetime(2012, 11, 11)))

        rv = self.app.put('/tasks/PROGRESS/2')

        self.assertEquals(403, rv.status_code)
Exemplo n.º 15
0
    def test_task_toJSON(self):
        team = Team('Log')
        team.id = 1
        task = Task('title1',
                    'detail',
                    status='DONE',
                    price=1,
                    estimate=4,
                    team=team)
        task.id = 1
        task.owner = User('Mike')

        self.assertEquals(
            {
                'id': 1,
                'title': 'title1',
                'detail': 'detail',
                'status': 'DONE',
                'price': 1,
                'estimate': 4,
                'priority': 100,
                'time_slots': [],
                'consuming': '0',
                'created_time': 'just now',
                'last_updated': 'just now',
                'team': {
                    'name': 'Log',
                    'color': '2a33d8',
                    'id': 1
                },
                'owner': {
                    'name': 'Mike',
                    'gravater': '91f376c4b36912e5075b6170d312eab5'
                },
                'partner': {}
            }, task.toJSON())
Exemplo n.º 16
0
    def test_join_partner(self):
        task = Task('title2',
                    'detail2',
                    estimate=10,
                    price=10,
                    status='PROGRESS',
                    start_time=datetime(2012, 11, 11),
                    team=Team.query.get(1))
        task.owner = User.query.get(2)
        create_entity(task)

        rv = self.app.put('/jointask/1')

        self.assertEquals(200, rv.status_code)
        self.assertEquals(
            {
                "object": {
                    "status":
                    "PROGRESS",
                    'consuming':
                    '1',
                    "time_slots": [{
                        "partner": {},
                        "start_time": "3 months ago",
                        "consuming_hours": "1",
                        "user": {
                            "gravater": "91f376c4b36912e5075b6170d312eab5",
                            "name": "Bob"
                        },
                        "bar_width": "100.00%"
                    }],
                    "owner": {
                        "gravater": "91f376c4b36912e5075b6170d312eab5",
                        "name": "Bob"
                    },
                    "title":
                    "title2",
                    "estimate":
                    10,
                    'priority':
                    100,
                    "partner": {
                        "gravater": "91f376c4b36912e5075b6170d312eab5",
                        "name": "Mike"
                    },
                    "price":
                    10,
                    "team": {
                        'id': 1,
                        "color": "2a33d8",
                        "name": "Log"
                    },
                    "id":
                    1,
                    'last_updated':
                    'just now',
                    'created_time':
                    'just now',
                    "detail":
                    "detail2"
                }
            }, json.loads(rv.data))
        task = Task.query.get(1)
        self.assertEquals(1, task.time_slots.count())
        self.assertEquals('PROGRESS', task.status)
        self.assertEquals(3600, task.time_slots[0].consuming)
        self.assertEquals('Bob', task.time_slots[0].user.name)
        self.assertIsNone(task.time_slots[0].partner)
        self.assertEquals(task.start_time, miami.utils.now())
Exemplo n.º 17
0
    def test_paired_to_done(self):
        task = Task('title2', 'detail2', estimate=10, price=10, status='PROGRESS', start_time=datetime(2012, 11,
                    11), team=Team.query.get(1))
        task.owner = User.query.get(1)
        task.partner = User.query.get(2)
        task.start_time = datetime(2012, 11, 11, 1, 0, 0)
        task.time_slots.append(TimeSlot(task.start_time, 3600, task.owner))
        create_entity(task)

        when(miami.utils).now().thenReturn(datetime(2012, 11, 11, 2, 0, 0))
        rv = self.app.put('/tasks/DONE/1')

        self.assertEquals(200, rv.status_code)
        self.assertEquals({'object': {'detail': 'detail2',
                                      'estimate': 10,
                                      'id': 1,
                                      'last_updated': 'just now',
                                      'created_time': 'just now',
                                      'owner': {},
                                      'partner': {},
                                      'price': 10,
                                      'status': 'DONE',
                                      "consuming": "2",
                                      'priority': 100,
                                      "time_slots": [
                                      {
                                          "partner": {},
                                          "start_time": "3 months ago",
                                          "consuming_hours": "1",
                                          "user": {
                                              "gravater": "91f376c4b36912e5075b6170d312eab5",
                                              "name": "Mike"
                                          },
                                          "bar_width": "50.00%"
                                      },
                                          {
                                              "partner": {
                                                  "gravater": "91f376c4b36912e5075b6170d312eab5",
                                                  "name": "Bob"
                                              },
                                              "start_time": "3 months ago",
                                              "consuming_hours": "1",
                                              "user": {
                                                  "gravater": "91f376c4b36912e5075b6170d312eab5",
                                                  "name": "Mike"
                                              },
                                              "bar_width": "50.00%"
                                          }
                                      ],
                                      'team': {'id':1, 'color': '2a33d8', 'name': 'Log'},
                                      'title': 'title2'}}, json.loads(rv.data))

        task = Task.query.get(1)
        self.assertIsNone(task.partner)
        self.assertIsNone(task.owner)
        self.assertEquals('DONE', task.status)
        self.assertEquals(2, task.time_slots.count())
        self.assertEquals(3600, task.time_slots[0].consuming)
        self.assertEquals('Mike', task.time_slots[0].user.name)
        self.assertIsNone(task.time_slots[0].partner)
        self.assertEquals(3600, task.time_slots[1].consuming)
        self.assertEquals('Mike', task.time_slots[1].user.name)
        self.assertEquals('Bob', task.time_slots[1].partner.name)
Exemplo n.º 18
0
    def test_paired_to_done(self):
        task = Task('title2',
                    'detail2',
                    estimate=10,
                    price=10,
                    status='PROGRESS',
                    start_time=datetime(2012, 11, 11),
                    team=Team.query.get(1))
        task.owner = User.query.get(1)
        task.partner = User.query.get(2)
        task.start_time = datetime(2012, 11, 11, 1, 0, 0)
        task.time_slots.append(TimeSlot(task.start_time, 3600, task.owner))
        create_entity(task)

        when(miami.utils).now().thenReturn(datetime(2012, 11, 11, 2, 0, 0))
        rv = self.app.put('/tasks/DONE/1')

        self.assertEquals(200, rv.status_code)
        self.assertEquals(
            {
                'object': {
                    'detail':
                    'detail2',
                    'estimate':
                    10,
                    'id':
                    1,
                    'last_updated':
                    'just now',
                    'created_time':
                    'just now',
                    'owner': {},
                    'partner': {},
                    'price':
                    10,
                    'status':
                    'DONE',
                    "consuming":
                    "2",
                    'priority':
                    100,
                    "time_slots": [{
                        "partner": {},
                        "start_time": "3 months ago",
                        "consuming_hours": "1",
                        "user": {
                            "gravater": "91f376c4b36912e5075b6170d312eab5",
                            "name": "Mike"
                        },
                        "bar_width": "50.00%"
                    }, {
                        "partner": {
                            "gravater": "91f376c4b36912e5075b6170d312eab5",
                            "name": "Bob"
                        },
                        "start_time": "3 months ago",
                        "consuming_hours": "1",
                        "user": {
                            "gravater": "91f376c4b36912e5075b6170d312eab5",
                            "name": "Mike"
                        },
                        "bar_width": "50.00%"
                    }],
                    'team': {
                        'id': 1,
                        'color': '2a33d8',
                        'name': 'Log'
                    },
                    'title':
                    'title2'
                }
            }, json.loads(rv.data))

        task = Task.query.get(1)
        self.assertIsNone(task.partner)
        self.assertIsNone(task.owner)
        self.assertEquals('DONE', task.status)
        self.assertEquals(2, task.time_slots.count())
        self.assertEquals(3600, task.time_slots[0].consuming)
        self.assertEquals('Mike', task.time_slots[0].user.name)
        self.assertIsNone(task.time_slots[0].partner)
        self.assertEquals(3600, task.time_slots[1].consuming)
        self.assertEquals('Mike', task.time_slots[1].user.name)
        self.assertEquals('Bob', task.time_slots[1].partner.name)