Changes in / [38:77d4f71ee2a7:37:fe97cac0645e] in pyenvjasmine
- Files:
-
- 8 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
MANIFEST
r35 r28 1 1 # file GENERATED by distutils, do NOT edit 2 2 README 3 setup.cfg4 3 setup.py 5 4 pyenvjasmine/__init__.py -
pyenvjasmine/runner.html
r36 r12 8 8 <script type="text/javascript" src="file:///%(libDir)s/envjasmine/lib/jasmine/jasmine.js"></script> 9 9 <script type="text/javascript" src="file:///%(libDir)s/envjasmine/lib/jasmine/jasmine-html.js"></script> 10 <script type="text/javascript" src="file:///%(libDir)s/envjasmine/lib/jasmine-ajax/mock-ajax.js"></script> 11 <script type="text/javascript" src="file:///%(libDir)s/envjasmine/lib/jasmine-ajax/spec-helper.js"></script> 12 <script type="text/javascript" src="file:///%(libDir)s/envjasmine/lib/jasmine-jquery/jasmine-jquery.js"></script> 10 13 11 14 <script type="text/javascript" src="browser.runner.js"></script> … … 40 43 EnvJasmine.jsDir = ""; 41 44 EnvJasmine.testDir = "%(testDir)s"; 42 EnvJasmine.envJasmineLibDir = 'file:///%(libDir)s/envjasmine/lib';43 45 44 46 EnvJasmine.load = function (path) { -
pyenvjasmine/runner.py
r36 r33 89 89 90 90 watchdog.cancel() # if it's still waiting to run 91 91 92 # if it timed out, success is False 92 93 success = (not kill_check.isSet()) and p.returncode >= 0 … … 94 95 return (success, ''.join(stdout_l), stderr) 95 96 97 96 98 class Runner(object): 97 99 """ … … 103 105 104 106 def __init__(self, rootdir=None, testdir=None, configfile=None, 105 browser_configfile=None , testing_enviroment='phantomjs'):107 browser_configfile=None): 106 108 """ 107 109 Set up paths, by default everything is … … 125 127 self.configfile = configfile 126 128 self.browser_configfile = browser_configfile 127 self.runner_js = os.path.join(here, 'run-jasmine3.js') 128 self.testing_enviroment = testing_enviroment 129 self.runner_html = os.path.join(here, 'runner.html') 130 131 def run(self, spec=None, timeout=None): 132 """ 133 Run the js tests with envjasmine, return success (true/false) and 134 the captured stdout data 135 136 spec: (relative) path to a spec file (run only that spec) 137 timeout: Set it to a given number of seconds and the process running 138 the js tests will be killed passed that time 139 """ 129 140 environment = get_environment() 130 141 rhino_path = os.path.join(self.rootdir, 'lib', 'rhino', 'js.jar') … … 132 143 rootdir_param = '--rootDir=%s' % self.rootdir 133 144 testdir_param = '--testDir=%s' % self.testdir 134 135 # using a dictionary to parameterize the different engines136 self.envs = {137 'phantomjs' : {138 'command' : [139 'phantomjs',140 '--debug=true',141 self.runner_js,142 'browser.runner.html'143 ],144 'runner_html' : 'runner3.html',145 'failed_mark' : 'FAILED',146 'success_mark' : '0 failures'147 },148 'rhino' : {149 'command' : [150 'java',151 '-Duser.timezone=US/Eastern',152 '-Dfile.encoding=utf-8',153 '-jar',154 rhino_path,155 envjasmine_js_path,156 '--disableColor',157 environment,158 rootdir_param,159 testdir_param160 ],161 'runner_html' : 'runner.html',162 'failed_mark' : 'FAILED',163 'success_mark' : 'Failed: 0',164 'command_params_func' : self.command_params_rhino165 }166 }167 self.runner_html = os.path.join(here,168 self.envs[self.testing_enviroment]['runner_html'])169 170 def command_params_rhino(self, command):171 """172 Function specific to Rhino to add eventual arguments to the command line.173 The function is referenced in the dictionary "envs" with key174 "command_params_func", and for every engine that needs the same type of175 manipulation there will be a similar function with relative reference in176 the dictionary177 """178 if self.configfile and os.path.exists(self.configfile):179 command.append('--configFile=%s' % self.configfile)180 return command181 182 def run(self, spec=None, timeout=None):183 """184 Run the js tests with envjasmine, return success (true/false) and185 the captured stdout data186 187 spec: (relative) path to a spec file (run only that spec)188 timeout: Set it to a given number of seconds and the process running189 the js tests will be killed passed that time190 """191 145 if self.browser_configfile and os.path.exists(self.browser_configfile): 192 146 self.write_browser_htmlfile() 193 command = self.envs[self.testing_enviroment]['command'] 194 # Add eventual other parameters to the command by calling a 195 # function specific for the selected engine (rhino, phantomjs, etc.) 196 if 'command_params_func' in self.envs[self.testing_enviroment]: 197 command = self.envs[self.testing_enviroment]['command_params_func'](command) 147 148 command = [ 149 'java', 150 '-Duser.timezone=US/Eastern', 151 '-Dfile.encoding=utf-8', 152 '-jar', 153 rhino_path, 154 envjasmine_js_path, 155 '--disableColor', 156 environment, 157 rootdir_param, 158 testdir_param 159 ] 160 161 if self.configfile and os.path.exists(self.configfile): 162 command.append('--configFile=%s' % self.configfile) 163 198 164 # if we were asked to test only some of the spec files, 199 165 # addd them to the command line: … … 208 174 stderr = subprocess.PIPE 209 175 input_data = '' 176 210 177 success, stdout, stderr = run_popen_with_timeout( 211 178 command, timeout, input_data, stdin, stdout, stderr … … 219 186 220 187 def did_test_pass(self, stdout): 221 if self.envs[self.testing_enviroment]['failed_mark']in stdout:188 if 'FAILED' in stdout: 222 189 # it can happen that a test fails because of some timing issues 223 190 # (timer error). In such case it may happen that the test does … … 231 198 # tests passing ok 232 199 for line in stdout.splitlines(): 233 if self.envs[self.testing_enviroment]['success_mark'] in line: 234 return True 200 if 'Failed' in line: 201 failed = line.split(':')[1].strip() 202 return failed == '0' 235 203 return False 236 204 -
pyenvjasmine/tests/sample/browser.configfile.js
r36 r0 6 6 EnvJasmine.jsDir = EnvJasmine.testDir + "/code/"; 7 7 EnvJasmine.loadGlobal(EnvJasmine.includeDir + "jquery-1.4.4.js"); 8 EnvJasmine.loadGlobal(EnvJasmine.testDir + '/code/demo.js');9 EnvJasmine.loadGlobal(EnvJasmine.testDir + '/mocks/demo.mock.js');10 EnvJasmine.loadGlobal(EnvJasmine.testDir + '/tests/specs/test_demo.spec.js'); -
pyenvjasmine/tests/test_runner.py
r36 r33 5 5 6 6 7 class TestsRunnerRhino(object): 8 9 """ 10 Run the full tests using the old rhino+jasmine1 env 11 """ 7 class TestsRunner(object): 12 8 13 9 def test_runner_defaults(self): … … 15 11 Test the runner, using default values (which wil run the demo specs) 16 12 """ 17 jstests = Runner( testing_enviroment='rhino')13 jstests = Runner() 18 14 success, stdout = jstests.run() 19 15 assert success … … 30 26 envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine') 31 27 jstests = Runner( 32 testing_enviroment='rhino',33 28 rootdir=envjasmine_dir, 34 29 testdir=sample, … … 52 47 envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine') 53 48 jstests = Runner( 54 testing_enviroment='rhino',55 49 rootdir=envjasmine_dir, 56 50 testdir=sample, … … 74 68 envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine') 75 69 jstests = Runner( 76 testing_enviroment='rhino',77 70 rootdir=envjasmine_dir, 78 71 testdir=sample, … … 104 97 # but we want to test also the case when a test failed 105 98 # and it does not appear in the "Failed:" report 106 jstests = Runner( testing_enviroment='rhino')99 jstests = Runner() 107 100 success = jstests.did_test_pass('') 108 101 assert not success … … 127 120 success = jstests.did_test_pass('Failed: something-not-a-number') 128 121 assert not success 129 130 class TestsRunnerPhantomjs(object):131 132 """133 Run the full tests using the phantom+jasmine3 env134 """135 136 def test_write_browser_htmlfile_markup_is_correct(self):137 """138 Test the created markup139 The config file doesn't contain the mock files so jasmine tests140 are expected to fail141 """142 here = os.path.dirname(__file__)143 sample = os.path.join(here, 'sample')144 browser_conf_file = os.path.join(sample, 'browser.configfile_no_mocks.js')145 envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine')146 jstests = Runner(147 testing_enviroment='phantomjs',148 rootdir=envjasmine_dir,149 testdir=sample,150 browser_configfile=browser_conf_file151 )152 expected = jstests.create_testRunnerHtml()153 jstests.write_browser_htmlfile()154 success, stdout = jstests.run()155 assert not success156 assert '2 test(s) FAILED:' in stdout157 with open("browser.runner.html",'r') as file:158 actual = file.read()159 assert expected == actual160 161 def test_runner_with_browser_configfile(self):162 """163 Test the runner, giving it some parameters incl the browser config file164 The config file contains the mock files so jasmine tests are expected165 to pass166 """167 here = os.path.dirname(__file__)168 sample = os.path.join(here, 'sample')169 browser_conf_file = os.path.join(sample, 'browser.configfile.js')170 envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine')171 jstests = Runner(172 testing_enviroment='phantomjs',173 rootdir=envjasmine_dir,174 testdir=sample,175 browser_configfile=browser_conf_file176 )177 success, stdout = jstests.run()178 assert success179 assert '0 failures' in stdout180 181 def test_did_test_pass(self):182 # there is some coverage done with the previous tests,183 # but we want to test also the case when a test failed184 # and it does not appear in the "Failed:" report185 here = os.path.dirname(__file__)186 sample = os.path.join(here, 'sample')187 browser_conf_file = os.path.join(sample, 'browser.configfile.js')188 189 jstests = Runner(190 testing_enviroment='phantomjs',191 browser_configfile=browser_conf_file192 )193 success = jstests.did_test_pass('')194 assert not success195 success = jstests.did_test_pass('some random data '*50)196 assert not success197 success = jstests.did_test_pass('some data FAILED some more data')198 assert not success199 success = jstests.did_test_pass('some data FAILEDsome more data')200 assert not success201 success = jstests.did_test_pass('0 failures')202 assert success203 success = jstests.did_test_pass('0 failures FAILED')204 assert not success205 success = jstests.did_test_pass('0Failed: failures')206 assert not success207 success = jstests.did_test_pass('1 test(s) FAILED:')208 assert not success209 success = jstests.did_test_pass('-11 test(s) FAILED:')210 assert not success211 success = jstests.did_test_pass('something-not-a-number test(s) FAILED:')212 assert not success
Note:
See TracChangeset
for help on using the changeset viewer.