docstr: Tests SQLiteConnector.start_job_attempt and SQLiteConnector.end_job_attempt
docstr_tok: ["Tests","SQLiteConnector.start_job_attempt","and","SQLiteConnector.end_job_attempt"]
code: def test_job_attempt(self):
      """Tests SQLiteConnector.start_job_attempt and SQLiteConnector.end_job_attempt"""
      rid = 1
      connector = SQLiteConnector(self.db_file)
      eid = connector.start_experiment(self.name, "test", "{}")
      jid = connector.job_started(eid, rid, "job1")
      connector.end_job_attempt(jid)
  
      connector.cursor.execute(
          "SELECT jaid, jid, num, rid, start_time, end_time FROM job_attempt;"
      )
      res = connector.cursor.fetchall()
      self.assertEqual(len(res), 1)
      self.assertEqual(res[0][1], 1)
      self.assertEqual(res[0][2], 0)
      self.assertEqual(res[0][3], rid)
      self.assertNotEqual(res[0][-1], None)
  
      connector.cursor.execute("SELECT jid, end_time FROM job;")
      res = connector.cursor.fetchall()
      self.assertEqual(len(res), 1)
      self.assertEqual(res[0][-1], None)
  
      connector.job_finished(eid, jid, -100.0)
      connector.close()
  
file_path: auptimizer/tests/ET/Connector/test_SQLiteConnector.py
imports: import os
  import sqlite3
  import unittest
  from six.moves import configparser
  from aup.ET.Connector.SQLiteConnector import SQLiteConnector
  from aup.setupdb import sqlite
label_desc: Use image node_id 7 for calling the SQLiteConnectorTestCase obj's underlying member method code with example usage: obj.test_job_attempt() without return types