fix comments;remove non-used imports;enable test for projection;using get_client() s3select_first_tests_framework 342/head
authorgal salomon <gal.salomon@gmail.com>
Sun, 31 May 2020 13:07:58 +0000 (16:07 +0300)
committergal salomon <gal.salomon@gmail.com>
Sun, 31 May 2020 13:09:03 +0000 (16:09 +0300)
s3tests_boto3/functional/test_s3select.py

index 8ef75d5e451912aa523f9deb65af5490a07628b9..7af4ef6736e34d9d4e5260bd5278c519302cc086 100644 (file)
@@ -1,81 +1,10 @@
-import boto3
-import botocore.session
-from botocore.exceptions import ClientError
-from botocore.exceptions import ParamValidationError
-from nose.tools import eq_ as eq
-from nose.plugins.attrib import attr
-from nose.plugins.skip import SkipTest
-import isodate
-import email.utils
-import datetime
-import threading
-import re
-import pytz
-from collections import OrderedDict
-import requests
-import json
-import base64
-import hmac
-import hashlib
-import xml.etree.ElementTree as ET
-import time
-import operator
 import nose
-import os
-import string
 import random
-import socket
-import ssl
-from email.header import decode_header
-
-from .utils import assert_raises
-from .utils import generate_random
-from .utils import _get_status_and_error_code
-from .utils import _get_status
-
-from .policy import Policy, Statement, make_json_policy
 
 from . import (
-    get_client,
-    get_prefix,
-    get_unauthenticated_client,
-    get_bad_auth_client,
-    get_v2_client,
-    get_new_bucket,
-    get_new_bucket_name,
-    get_new_bucket_resource,
-    get_config_is_secure,
-    get_config_host,
-    get_config_port,
-    get_config_endpoint,
-    get_main_aws_access_key,
-    get_main_aws_secret_key,
-    get_main_display_name,
-    get_main_user_id,
-    get_main_email,
-    get_main_api_name,
-    get_alt_aws_access_key,
-    get_alt_aws_secret_key,
-    get_alt_display_name,
-    get_alt_user_id,
-    get_alt_email,
-    get_alt_client,
-    get_tenant_client,
-    get_tenant_iam_client,
-    get_tenant_user_id,
-    get_buckets_list,
-    get_objects_list,
-    get_main_kms_keyid,
-    get_secondary_kms_keyid,
-    nuke_prefixed_buckets,
+    get_client
     )
 
-import boto
-import boto.s3.connection
-import sys
-import random
-from botocore.client import Config
-
 region_name = ''
 
 # recurssion function for generating arithmetical expression 
@@ -126,13 +55,7 @@ def generate_s3select_expression_projection(bucket_name,obj_name):
         res = remove_xml_tags_from_result( run_s3select(bucket_name,obj_name,"select " + e + " from stdin;",) ).replace(",","")
 
         # accuracy level 
-        epsilon = float(0.1) 
-
-        #debug purpose
-        x = (1 - (float(res.split("\n")[1]) / eval( e )) )
-        if (x > epsilon):
-            print (x)
-            print (e)
+        epsilon = float(0.000001) 
 
         # both results should be close (epsilon)
         assert (1 - (float(res.split("\n")[1]) / eval( e )) ) < epsilon
@@ -145,14 +68,11 @@ def test_generate_where_clause():
     obj_name = "single_line_csv.csv"
     upload_csv_object(bucket_name,obj_name,single_line_csv)
        
-    for _ in range(10): 
+    for _ in range(100): 
         generate_s3select_where_clause(bucket_name,obj_name)
 
 def test_generate_projection():
 
-    # skipping until fix for s3select engine accuracy
-    return
-
     # create small csv file for testing the random expressions
     single_line_csv = create_random_csv_object(1,1)
     bucket_name = "test"
@@ -162,17 +82,6 @@ def test_generate_projection():
     for _ in range(100): 
         generate_s3select_expression_projection(bucket_name,obj_name)
     
-def get_connection():
-    conn = boto.connect_s3(
-        aws_access_key_id = get_main_aws_access_key(),
-        aws_secret_access_key = get_main_aws_secret_key(),
-        host = get_config_host(),
-        port = get_config_port(),
-        is_secure=False,               # uncomment if you are not using ssl
-        calling_format = boto.s3.connection.OrdinaryCallingFormat(),
-        )
-
-    return conn
 
 def create_csv_object_for_datetime(rows,columns):
         result = ""
@@ -199,23 +108,14 @@ def create_random_csv_object(rows,columns,col_delim=",",record_delim="\n",csv_sc
 
 
 def upload_csv_object(bucket_name,new_key,obj):
-        conn = get_connection()
-        conn.create_bucket( bucket_name )
-        bucket = conn.get_bucket( bucket_name )
 
-        k1 = bucket.new_key( new_key )
-        k1.set_contents_from_string( obj )
-        
+        client = get_client()
+        client.create_bucket(Bucket=bucket_name)
+        client.put_object(Bucket=bucket_name, Key=new_key, Body=obj)
     
 def run_s3select(bucket,key,query,column_delim=",",row_delim="\n",quot_char='"',esc_char='\\',csv_header_info="NONE"):
 
-    s3 = boto3.client('s3',#'sns',
-        endpoint_url=get_config_endpoint(),
-        aws_access_key_id=get_main_aws_access_key(),
-        region_name=region_name,
-        aws_secret_access_key=get_main_aws_secret_key())
-        #config=Config(signature_version='v2'))
-
+    s3 = get_client()
 
     r = s3.select_object_content(
         Bucket=bucket,