Пример #1
0
    def testGetOrderProgressFromId(self):
        self.testInstall()

        order = Order('fooservice')
        self.db.save_order(order)
        id = order.get_id()
        self.assertEqual(self.db.get_order_progress_from_id(id), .0)

        order.close()
        self.db.save_order(order)
        self.assertEqual(self.db.get_order_progress_from_id(id), 1.0)

        task1 = Task(order.id, 'my test task')
        self.db.save_task(task1)
        self.assertEqual(self.db.get_order_progress_from_id(id), .0)

        task2 = Task(order.id, 'another test task')
        self.db.save_task(task2)
        self.assertEqual(self.db.get_order_progress_from_id(id), .0)

        task1.set_progress(.5)
        self.db.save_task(task1)
        self.assertEqual(self.db.get_order_progress_from_id(id), .25)
        task2.set_progress(.5)
        self.db.save_task(task2)
        self.assertEqual(self.db.get_order_progress_from_id(id), .5)
        task1.set_progress(1.0)
        self.db.save_task(task1)
        self.assertEqual(self.db.get_order_progress_from_id(id), .75)
        task2.set_progress(1.0)
        self.db.save_task(task2)
        self.assertEqual(self.db.get_order_progress_from_id(id), 1.0)
Пример #2
0
    def testSaveTask(self):
        self.testInstall()

        order = Order('fooservice')
        self.db.save_order(order)

        task = Task(order.id, 'my test task')
        self.assert_(task.id is None)
        self.db.save_task(task)
        self.assert_(task.id is not None)
Пример #3
0
    def testCloseOpenOrders(self):
        self.testInstall()

        order = Order('fooservice')
        self.db.add_order(order)
        order = self.db.get_orders()[0]
        self.assertEqual(order.closed, None)

        self.db.close_open_orders()
        order = self.db.get_orders()[0]
        self.failIfEqual(order.get_closed_timestamp(), None)
Пример #4
0
    def testSaveOrder(self):
        self.testInstall()

        order1 = Order('fooservice')

        self.assert_(order1.get_id() is None)
        self.db.save_order(order1)

        # Check that the order is stored.
        order2 = self.db.get_order(id=order1.get_id())
        self.assertEqual(order1.get_id(), order2.get_id())
Пример #5
0
    def testGetTask(self):
        self.testInstall()

        order = Order('fooservice')
        self.db.save_order(order)

        task1 = Task(order.id, 'my test task')
        self.db.save_task(task1)
        loaded_task = self.db.get_task()
        self.assertEqual(task1.id, loaded_task.id)

        task2 = Task(order.id, 'another test task')
        self.db.save_task(task2)
        self.assertRaises(IndexError, self.db.get_task)
Пример #6
0
 def __get_order_from_row(self, row):
     assert row is not None
     tbl_a = self._table_map['order']
     order = Order(row[tbl_a.c.service])
     order.id = row[tbl_a.c.id]
     order.status = row[tbl_a.c.status]
     order.created = row[tbl_a.c.created]
     order.closed = row[tbl_a.c.closed]
     order.created_by = row[tbl_a.c.created_by]
     order.set_description(row[tbl_a.c.description])
     try:
         order.progress = float(row.avg_progress)
     except TypeError:  # Order has no tasks
         if order.closed:
             order.progress = 1.0
         else:
             order.progress = .0
     return order
Пример #7
0
    def testGetTasks(self):
        self.testInstall()

        order = Order('fooservice')
        self.db.save_order(order)

        task1 = Task(order.id, 'my test task')
        task2 = Task(order.id, 'another test task')
        self.db.save_task(task1)
        self.db.save_task(task2)

        id_list1 = sorted([task1.id, task2.id])
        id_list2 = sorted([task.id for task in self.db.get_tasks()])
        self.assertEqual(id_list1, id_list2)

        tasks = self.db.get_tasks(order_id=order.id)
        id_list2 = sorted([task.id for task in tasks])
        self.assertEqual(id_list1, id_list2)

        id_list2 = [task.id for task in self.db.get_tasks(order_id=2)]
        self.assertEqual([], id_list2)
Пример #8
0
    def testAddOrder(self):
        self.testInstall()

        order1 = Order('fooservice')
        self.assertEqual(order1.get_created_by(), getuser())
        self.assertEqual(order1.get_description(), '')
        self.assertEqual(order1.get_progress(), .0)
        order1.created_by = 'this test'
        order1.set_description('my description')
        self.assertEqual(order1.get_created_by(), 'this test')
        self.assertEqual(order1.get_description(), 'my description')

        # Save the order.
        self.assert_(order1.get_id() is None)
        self.db.add_order(order1)
        order_id = order1.get_id()
        self.assert_(order_id is not None)

        def assert_progress(value):
            progress = self.db.get_order_progress_from_id(order_id)
            theorder = self.db.get_order(id=order_id)
            self.assertEqual(progress, value)
            self.assertEqual(theorder.get_progress(), value)

        # Check that the order is stored.
        order = self.db.get_order(id=order_id)
        self.assertEqual(order.get_id(), order_id)
        self.assertEqual(order.get_created_by(), 'this test')
        self.assertEqual(order.get_closed_timestamp(), None)
        self.assertEqual(order.get_description(), 'my description')
        assert_progress(.0)

        # Check that an order that has no tasks show progress 100% when
        # it is closed.
        order.close()
        self.db.save_order(order)
        assert_progress(1.0)

        # Add some sub-tasks.
        task1 = Task(order.id, 'my test task')
        self.db.save_task(task1)
        assert_progress(.0)

        task2 = Task(order.id, 'another test task')
        self.db.save_task(task2)
        assert_progress(.0)

        # Change the progress, re-check.
        task1.set_progress(.5)
        self.db.save_task(task1)
        assert_progress(.25)

        task2.set_progress(.5)
        self.db.save_task(task2)
        assert_progress(.5)

        task1.set_progress(1.0)
        self.db.save_task(task1)
        assert_progress(.75)

        task2.set_progress(1.0)
        self.db.save_task(task2)
        assert_progress(1.0)