예제 #1
0
    def setUpClass(cls, *mocks):
        get_api_spec.cache_clear()
        generate_classes.cache_clear()

        setup_vcr = vcr.VCR(filter_headers=['Authorization'])
        setup_cassette = os.path.join(cassette_dir(), 'io_setup.yml')
        with setup_vcr.use_cassette(setup_cassette):
            # create a file
            buf = StringIO()
            buf.write('a,b,c\n1,2,3')
            buf.seek(0)
            file_id = civis.io.file_to_civis(buf, 'somename')
            cls.file_id = file_id

            # create the table. assumes this function works.
            sql = """
                DROP TABLE IF EXISTS scratch.api_client_test_fixture;

                CREATE TABLE scratch.api_client_test_fixture (
                    a int,
                    b int,
                    c int
                );

                INSERT INTO scratch.api_client_test_fixture
                VALUES (1,2,3);
            """
            res = civis.io.query_civis(sql,
                                       'redshift-general',
                                       polling_interval=POLL_INTERVAL)
            res.result()  # block

            # create an export to check get_url. also tests export_csv
            with TemporaryDirectory() as temp_dir:
                fname = os.path.join(temp_dir, 'tempfile')
                sql = "SELECT * FROM scratch.api_client_test_fixture"
                database = 'redshift-general'
                result = civis.io.civis_to_csv(fname,
                                               sql,
                                               database,
                                               polling_interval=POLL_INTERVAL)
                result = result.result()
                cls.export_url = result['output'][0]['path']
                assert result.state == 'succeeded'

            cls.export_job_id = result.sql_id
예제 #2
0
 def tearDownClass(cls):
     get_api_spec.cache_clear()
     generate_classes.cache_clear()
예제 #3
0
 def setUpClass(cls):
     get_api_spec.cache_clear()
     generate_classes.cache_clear()
예제 #4
0
def clear_lru_cache():
    # LRU cache persists between tests so these caches need to be cleared
    # when different api specs are used in different test cases
    get_api_spec.cache_clear()
    generate_classes.cache_clear()
예제 #5
0
 def tearDownClass(cls):
     get_swagger_spec.cache_clear()
     generate_classes.cache_clear()
예제 #6
0
 def setUpClass(cls):
     get_swagger_spec.cache_clear()
     generate_classes.cache_clear()