Example #1
0
def process_uploaded_file(f, name):
    partial_path = "mysite/uploads/%s" % name
    uploaded_file = os.path.join(settings.BASE_DIR, partial_path)
    with open(uploaded_file, 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)
    ft = FileTable(uploaded_file)
    ft.CreateAndPopulateTable()
 def test_RemoveFileFromTable(self):
     return
     ft = FileTable(th.FILE_PATH, db=th.TEST_DB_PATH)
     ft._RemoveFileFromTable()
     try:
         entry = UploadedFiles.objects.get(file_name=th.FILE_NAME)
         assertTrue(True)  # This should succeed
     except:
         pass
Example #3
0
 def test_RemoveFileFromTable(self):
     return
     ft = FileTable(th.FILE_PATH, db=th.TEST_DB_PATH)
     ft._RemoveFileFromTable()
     try:
         entry = UploadedFiles.objects.get(file_name=th.FILE_NAME)
         assertTrue(True)  # This should succeed
     except:
         pass
 def test_AddFileToTable(self):
     return
     ft = FileTable(th.FILE_PATH, db=th.TEST_DB_PATH)
     ft._AddFileToTable()
     dba = DBAccess(db_path=th.TEST_DB_PATH)
     sql_str = "SELECT * FROM %s WHERE file_name='%s'" % (settings.UPLOAD_FILE_TABLE, th.FILE_NAME)
     rows, _ = dba.ExecuteQuery(sql_str)
     file_name = rows[0][0]
     self.assertEqual(file_name, th.FILE_NAME)
Example #5
0
 def testCreateAndPopulateTable(self):
     return
     ft = FileTable(th.FILE_PATH, db=th.TEST_DB_PATH)
     ft.CreateAndPopulateTable()
     conn = sqlite3.connect(th.TEST_DB_PATH)
     sql_str = "SELECT * FROM %s" % ft._table_name
     rows = th.ExecuteSQL(conn, sql_str)
     self.assertEqual(len(rows), 3)
     row = rows[1]
     self.assertEqual(row[0], 2)
Example #6
0
 def test_AddFileToTable(self):
     return
     ft = FileTable(th.FILE_PATH, db=th.TEST_DB_PATH)
     ft._AddFileToTable()
     dba = DBAccess(db_path=th.TEST_DB_PATH)
     sql_str = "SELECT * FROM %s WHERE file_name='%s'" % (
         settings.UPLOAD_FILE_TABLE, th.FILE_NAME)
     rows, _ = dba.ExecuteQuery(sql_str)
     file_name = rows[0][0]
     self.assertEqual(file_name, th.FILE_NAME)
Example #7
0
def deletetable(request):
  if request.method == 'POST':
    tablename = request.POST['tablename']
    FileTable.RemoveUploadedFile(tablename)
    message = "Successfully removed table %s!" % tablename
    ctx = Context({'message': message})
    html = get_template('confirmation.html').render(ctx)
    return HttpResponse(html)

  # if a GET (or any other method) we'll create a blank form
  else:
    table_list = FileTable.DataTableList(CUR_DB)
    return render(request, 'delete_table.html', {'table_list': table_list})
 def testDataTableList(self):
     return
     dba = DBAccess(db_path=th.TEST_DB_PATH)
     ft = FileTable(th.FILE_PATH, db=th.TEST_DB_PATH)
     sql_str = "DELETE FROM %s WHERE table_name='%s'" % (settings.UPLOAD_FILE_TABLE, ft._table_name)
     try:
         dba.ExecuteQuery(sql_str, commit=True)
     except:
         pass
     old_table_set = set(FileTable.DataTableList(db=th.TEST_DB_PATH))
     ft.CreateAndPopulateTable()
     new_table_set = set(FileTable.DataTableList(db=th.TEST_DB_PATH))
     new_row_set = set([ft._table_name])
     self.assertTrue(new_table_set.issuperset(new_row_set))
     self.assertFalse(old_table_set.issuperset(new_row_set))
     ft._ExecuteSQL("", CloseDB=True)
Example #9
0
 def testRemoveUploadedFile(self):
     return
     dba = DBAccess(db_path=th.TEST_DB_PATH)
     ft = FileTable(th.FILE_PATH, db=th.TEST_DB_PATH)
     ft.CreateAndPopulateTable()
     table_set = set(FileTable.DataTableList(db=th.TEST_DB_PATH))
     self.assertTrue(table_set.issuperset(set([ft._table_name])))
     FileTable.RemoveUploadedFile(ft._filename, db=th.TEST_DB_PATH)
     remove_table_set = set(FileTable.DataTableList(db=th.TEST_DB_PATH))
     self.assertFalse(remove_table_set.issuperset(set([ft._table_name])))
Example #10
0
def maketable(request):
  table_list = FileTable.DataTableList(CUR_DB)
  if request.method == 'POST':
    tablename = request.POST['tablename']
    table_list.remove(tablename)
    table_list.insert(0, tablename)  # Make sure it's the default
    # Create a form instance and populate it with data from the request:
    display_form = TableForm(request.POST)
    # check whether it's valid:
    if display_form.is_valid():
      numrows = GetFieldFromForm(display_form, 'numrows')
      lastrow = GetFieldFromForm(display_form, 'lastrow')
      dba = DBAccess()
      if not dba.IsTablePresent(tablename): 
        raise TableviewUserError("Cannot find table %s" % tablename)
      headers = dba.GetSchema(tablename)
      sql_str = 'SELECT * FROM %s' % tablename 
      all_rows, _ = dba.ExecuteQuery(sql_str)
      if 'Next' in request.POST:
        firstrow = lastrow + 1
      else:
        firstrow = lastrow - 2*numrows
      lastrow = firstrow + numrows - 1
      rows = all_rows[firstrow-1:lastrow-1]
      new_display_form = TableForm(initial={
          'numrows': numrows, 'lastrow': lastrow})
      ctx_dict = {'rows':rows, 
          'display_form': new_display_form, 
          'tablename': tablename,
          'headers': headers,
          'table_list': table_list,
          }
      return render_to_response('table_view.html', ctx_dict, 
          context_instance=RequestContext(request))
    else:
      pass

  # if a GET (or any other method) we'll create a blank form
  else:
    display_form = TableForm()

  return render(request, 'table_request.html', 
      {'display_form': display_form,
       'table_list': table_list})
Example #11
0
 def testDataTableList(self):
     return
     dba = DBAccess(db_path=th.TEST_DB_PATH)
     ft = FileTable(th.FILE_PATH, db=th.TEST_DB_PATH)
     sql_str = "DELETE FROM %s WHERE table_name='%s'" % (
         settings.UPLOAD_FILE_TABLE, ft._table_name)
     try:
         dba.ExecuteQuery(sql_str, commit=True)
     except:
         pass
     old_table_set = set(FileTable.DataTableList(db=th.TEST_DB_PATH))
     ft.CreateAndPopulateTable()
     new_table_set = set(FileTable.DataTableList(db=th.TEST_DB_PATH))
     new_row_set = set([ft._table_name])
     self.assertTrue(new_table_set.issuperset(new_row_set))
     self.assertFalse(old_table_set.issuperset(new_row_set))
     ft._ExecuteSQL('', CloseDB=True)
Example #12
0
def query(request):
  dba = DBAccess()
  if request.method == 'POST':
    # Create a form instance and populate it with data from the request:
    query_form = QueryForm(request.POST)
    # check whether it's valid:
    if query_form.is_valid():
      query_string = GetFieldFromForm(query_form, 'query_string')
      if len(query_string) > 0:
        rows,_ = dba.ExecuteQuery(query_string)
        headers = dba.GetSchemaFromSelect(query_string)
        if len(rows[0]) != len(headers):
          raise TableviewInternalError("header length doesn't match row length")
      else:  # Used in test
        rows = []
        headers = []
      ctx_dict = {'rows':rows, 
          'query_string': query_string,
          'headers': headers,
          }
      return render_to_response('query_result.html', ctx_dict, 
          context_instance=RequestContext(request))
    else:
      pass

  # if a GET (or any other method) we'll create a blank form
  # Extend by including the schemas with types
  else:
    query_form = QueryForm()
  table_list = FileTable.DataTableList(CUR_DB)
  rows = []
  dba = DBAccess()
  for table in table_list:
    row = [table, ", ".join(dba.GetSchema(table))]
    rows.append(row)
  return render(request, 'query_request.html', 
      {'rows': rows,
       'query_form': query_form,
      })
Example #13
0
 def testConstructor(self):
     return
     ft = FileTable(th.FILE_PATH, db=th.TEST_DB_PATH)
     self.assertEqual(ft._filename, th.FILE_NAME)
     self.assertEqual(ft._table_name, th.FILE_NAME)