예제 #1
0
 def setUp(self):
     super().setUp()
     file_utils.ensure_empty(
         join(test.get_test_dir(self.test_name), 'private_resource'))
     self.copy_resource('calculator.py')
     self.copy_resource('calculator.proto')
     self.copy_resource('greeter.py')
     self.copy_resource('greeter.proto')
     from grpc.tools import command
     command.build_package_protos(join(test.get_test_dir(self.test_name),
                                       'private_resource'),
                                  strict_mode=True)
예제 #2
0
 def test_compose(self):
     self.populate_resource(
         'docker-compose.yml', '''
     version: '3.1'
     services:
         mockserver:
             image: jamesdbloom/mockserver
             ports:
             - "8000:1080"
     ''')
     self.populate_file(
         'main.yaml', '''---
                         steps:
                              - wait:
                                 seconds: 5
                                 for:
                                     http:
                                         put:
                                             url: 'http://localhost:8000/mockserver/expectation'
                                             body:
                                                 httpRequest: {'path': '/some/path'}
                                                 httpResponse: {'body': 'hello world'}
                                             response_code: 201
                             - http: 
                                 get: 
                                     url: 'http://localhost:8000/mockserver/expectation',
                                     response_code: 200
                         ''')
     runner = Runner(self.test_dir,
                     join(self.test_dir, 'main.yaml'),
                     None,
                     resources=join(test.get_test_dir(self.test_name),
                                    'resources'))
     self.assertFalse(runner.run_tests())
예제 #3
0
 def setUp(self):
     super().setUp()
     with self.connection as conn:
         conn.execute(
             "CREATE TABLE test (id INT NOT NULL, num INT, PRIMARY KEY (id));"
         )
         conn.execute("insert into test(id, num) values(1, 1);")
         conn.execute("insert into test(id, num) values(2, 2);")
     ensure_empty(join(test.get_test_dir(self.test_name), 'resources'))
예제 #4
0
 def setUp(self):
     super().setUp()
     ensure_empty(join(test.get_test_dir(self.test_name), 'resources'))
     import pika
     with pika.BlockingConnection(self.connectionParameters) as connection:
         channel = connection.channel()
         channel.exchange_declare(exchange=self.config['exchange'], exchange_type='topic')
         channel.queue_declare(queue=self.config['queue'])
         channel.queue_bind(exchange=self.config['exchange'], queue=self.config['queue'],
                            routing_key=self.config['routingKey'])
예제 #5
0
def mock_fetch_package(dep: Package):
    test_dir = test.get_test_dir('deps_tests')
    tmp_path = join(os.getcwd(), test_dir, 'tmp')
    if dep.name == 'update_dep' and dep.git_vsn == '1.2.0':
        set_deps(join(tmp_path, dep.name), [{
            'name': 'dep3',
            'url': 'https://github.com/comtihon/dep3',
            'tag': '1.0.0'
        }])
    if dep.name == 'remove_dep' and dep.git_vsn == '1.2.0':
        set_deps(join(tmp_path, dep.name), [])
    dep.update_from_cache(join(tmp_path, dep.name))
예제 #6
0
 def setUp(self):
     super().setUp()
     print(self.conf)
     with self.connection as conn:
         cur = conn.cursor()
         cur.execute(
             "CREATE TABLE test (id serial PRIMARY KEY, num integer);")
         cur.execute("insert into test(id, num) values(1, 1);")
         cur.execute("insert into test(id, num) values(2, 2);")
         conn.commit()
         cur.close()
     ensure_empty(join(test.get_test_dir(self.test_name), 'resources'))
예제 #7
0
 def setUp(self):
     super().setUp()
     conn = pymysql.connect(**self.conf)
     cur = conn.cursor()
     cur.execute(
         "CREATE TABLE test (id INT NOT NULL, num INT, PRIMARY KEY (id));")
     cur.execute("insert into test(id, num) values(1, 1);")
     cur.execute("insert into test(id, num) values(2, 2);")
     conn.commit()
     cur.close()
     conn.close()
     ensure_empty(join(test.get_test_dir(self.test_name), 'resources'))
예제 #8
0
 def populate_resource(self, file: str, content: str):
     with open(join(test.get_test_dir(self.test_name), 'resources', file),
               'w') as f:
         f.write(content)
예제 #9
0
 def setUp(self):
     Singleton._instances = {}  # clean singleton between tests
     ensure_empty(test.get_test_dir(self.test_name))
     ensure_empty(join(test.get_test_dir(self.test_name), 'resources'))
예제 #10
0
 def __init__(self, test_name, method_name):
     super().__init__(method_name)
     self._test_name = test_name
     self._test_dir = test.get_test_dir(test_name)
     logger.configure('debug')
     logger.log_storage = EmptyLogStorage('empty')
예제 #11
0
 def __enter__(self):
     resources = join(test.get_test_dir('grpc'), 'private_resource')
     mod = module_utils.load_external_actions(join(resources, self.server))
     self.server = mod.server
     self.server.start()
     return self
예제 #12
0
 def setUp(self):
     ensure_empty(test.get_test_dir(self.test_name))
     conf = self.global_config
     with open(self.conf_file, 'w') as outfile:
         json.dump(conf, outfile, sort_keys=True, indent=4)
예제 #13
0
 def setUp(self):
     super().setUp()
     ensure_empty(join(test.get_test_dir(self.test_name), 'resources'))
     self.add_dag('airflow_hello_world.py')
예제 #14
0
 def copy_resource(self, resource_name):
     # copy in private non-resource dir instead
     copyfile(
         join(self.global_resource_dir, resource_name),
         join(join(test.get_test_dir(self.test_name), 'private_resource'),
              resource_name))
예제 #15
0
 def setUp(self):
     ensure_empty(test.get_test_dir(self.test_name))
예제 #16
0
 def __init__(self, test_name, method_name):
     super().__init__(method_name)
     self._test_name = test_name
     self._test_dir = test.get_test_dir(test_name)
     logger.configure('debug')
예제 #17
0
 def test_resources(self):  # test's resource dir (unique per testcase)
     return join(test.get_test_dir(self.test_name), 'resources')
예제 #18
0
 def tearDown(self):
     remove_dir(test.get_test_dir(self.test_name))
예제 #19
0
    def setUp(self):
        super().setUp()
        ensure_empty(join(test.get_test_dir(self.test_name), 'resources'))
        self.populate_file(
            'resources/test.py', '''from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os

driver = webdriver.Firefox()
try:
    driver.get(os.environ['site_url'])
    assert "Python" in driver.title
    elem = driver.find_element_by_name("q")
    elem.clear()
    elem.send_keys("pycon")
    elem.send_keys(Keys.RETURN)
    assert "No results found." not in driver.page_source
finally:
    driver.close()''')
        self.populate_file(
            'resources/google_search.js',
            '''const {Builder, By, Key, until} = require('selenium-webdriver');
        async function basicExample(){
            let driver = await new Builder().forBrowser('firefox').build();
            try{
                await driver.get(process.env.site_url);
                await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
                await driver.wait(until.titleContains('webdriver'), 1000);
                await driver.getTitle().then(function(title) {
                            console.log('{\"title\":\"' + title + '\"}')
                    });
                driver.quit();
            }
            catch(err) {
                console.error(err);
                process.exitCode = 1;
                driver.quit();
              }
        }
        basicExample();
        ''')
        self.populate_file(
            'resources/MySeleniumTest.java', '''package selenium;

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class MySeleniumTest {

    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        try {
            driver.get(System.getenv("site_url"));
            WebElement element = driver.findElement(By.name("q"));
            element.sendKeys("Cheese!");
            element.submit();
        } finally {
            driver.quit();
        }
    }
}
        ''')
예제 #20
0
def mock_fetch_package(dep: Package):
    test_dir = test.get_test_dir('update_tests')
    tmp_path = join(os.getcwd(), test_dir, 'tmp')
    dep.update_from_cache(join(tmp_path, dep.name))
예제 #21
0
 def setUp(self):
     super().setUp()
     ensure_empty(join(test.get_test_dir(self.test_name), 'resources'))