def test_create_and_get_and_load_action_execution(self):
        created = db_api.create_action_execution(ACTION_EXECS[0])

        fetched = db_api.get_action_execution(created.id)

        self.assertEqual(created, fetched)

        fetched = db_api.load_action_execution(created.id)

        self.assertEqual(created, fetched)

        self.assertIsNone(db_api.load_action_execution("not-existing-id"))
    def test_create_and_get_and_load_action_execution(self):
        created = db_api.create_action_execution(ACTION_EXECS[0])

        fetched = db_api.get_action_execution(created.id)

        self.assertEqual(created, fetched)

        fetched = db_api.load_action_execution(created.id)

        self.assertEqual(created, fetched)

        self.assertIsNone(db_api.load_action_execution("not-existing-id"))
    def test_create_or_update_action_execution(self):
        id = 'not-existing-id'

        self.assertIsNone(db_api.load_action_execution(id))

        created = db_api.create_or_update_action_execution(id, ACTION_EXECS[0])

        self.assertIsNotNone(created)
        self.assertIsNotNone(created.id)

        updated = db_api.create_or_update_action_execution(
            created.id, {'state': 'RUNNING'})

        self.assertEqual('RUNNING', updated.state)
        self.assertEqual('RUNNING',
                         db_api.load_action_execution(updated.id).state)

        fetched = db_api.get_action_execution(created.id)

        self.assertEqual(updated, fetched)
    def test_trim_status_info(self):
        created = db_api.create_action_execution(ACTION_EXECS[0])

        self.assertIsNone(created.updated_at)

        updated = db_api.update_action_execution(created.id, {
            'state': 'FAILED',
            'state_info': ".." * 1024
        })

        self.assertEqual('FAILED', updated.state)
        state_info = db_api.load_action_execution(updated.id).state_info
        self.assertEqual(1023, len(state_info))
    def test_create_or_update_action_execution(self):
        id = 'not-existing-id'

        self.assertIsNone(db_api.load_action_execution(id))

        created = db_api.create_or_update_action_execution(id, ACTION_EXECS[0])

        self.assertIsNotNone(created)
        self.assertIsNotNone(created.id)

        updated = db_api.create_or_update_action_execution(
            created.id,
            {'state': 'RUNNING'}
        )

        self.assertEqual('RUNNING', updated.state)
        self.assertEqual(
            'RUNNING',
            db_api.load_action_execution(updated.id).state
        )

        fetched = db_api.get_action_execution(created.id)

        self.assertEqual(updated, fetched)
    def test_trim_status_info(self):
        created = db_api.create_action_execution(ACTION_EXECS[0])

        self.assertIsNone(created.updated_at)

        updated = db_api.update_action_execution(
            created.id,
            {'state': 'FAILED', 'state_info': ".." * 1024}
        )

        self.assertEqual('FAILED', updated.state)
        state_info = db_api.load_action_execution(updated.id).state_info
        self.assertEqual(
            1023,
            len(state_info)
        )
    def test_update_action_execution(self):
        created = db_api.create_action_execution(ACTION_EXECS[0])

        self.assertIsNone(created.updated_at)

        updated = db_api.update_execution(created.id, {
            'state': 'RUNNING',
            'state_info': "Running..."
        })

        self.assertEqual('RUNNING', updated.state)
        self.assertEqual('RUNNING',
                         db_api.load_action_execution(updated.id).state)

        fetched = db_api.get_action_execution(created.id)

        self.assertEqual(updated, fetched)
        self.assertIsNotNone(fetched.updated_at)
    def test_update_action_execution(self):
        created = db_api.create_action_execution(ACTION_EXECS[0])

        self.assertIsNone(created.updated_at)

        updated = db_api.update_execution(
            created.id,
            {'state': 'RUNNING', 'state_info': "Running..."}
        )

        self.assertEqual('RUNNING', updated.state)
        self.assertEqual(
            'RUNNING',
            db_api.load_action_execution(updated.id).state
        )

        fetched = db_api.get_action_execution(created.id)

        self.assertEqual(updated, fetched)
        self.assertIsNotNone(fetched.updated_at)