def test_random_string(self): # test length s = random_string(5) self.assertEqual(len(s), 5) s = random_string(0) self.assertEqual(len(s), 0) s = random_string(100) self.assertEqual(len(s), 100) # test 'alphabet' argument s = random_string(10, alphabet='a') self.assertEqual(s, 'a'*10) # create sets for less resource-demanding testing _string_digits = set(string.digits) _string_ascii_uppercase = set(string.ascii_uppercase) _string_ascii_lowercase = set(string.ascii_lowercase) # test other arguments s = random_string(1000, uppercase=False, lowercase=False, special=False) for c in s: self.assertIn(c, _string_digits) s = random_string(1000, lowercase=False, digits=False, special=False) for c in s: self.assertIn(c, _string_ascii_uppercase) s = random_string(1000, uppercase=False, digits=False, special=False) for c in s: self.assertIn(c, _string_ascii_lowercase) # test 'extra' argument extra = set('123') s = random_string(1000, uppercase=False, lowercase=False, digits=False, special=False, extra=''.join(extra)) for c in s: self.assertIn(c, extra) extra = set('1234567890') s = random_string(1000, uppercase=False, digits=False, special=False, extra=''.join(extra)) check_set = _string_ascii_lowercase.union(extra) for c in s: self.assertIn(c, check_set) special = set('!@#$%^&*()_-+=?/><,.|":;`~') s = random_string(1000, lowercase=False, uppercase=False, digits=False) for c in s: self.assertIn(c, special)
def __getitem__(self, task_id): word = self.words_to_recognize[int(task_id)] rstr = random_string(4, special=False) img = self._generate_image(word, rstr, self.font_path) img_path = self._save_image(img, self.img_dir) url = os.path.join(self.img_dir_url, os.path.basename(img_path)) return { 'id' : task_id, 'url' : url, # Note the '#' before the key name, this defines a session variable '#random_string' : rstr, }
def start_env(opts): ENV_TEMPLATE_DIR = 'templates/env_template' ENV_TEMPLATE_PATH = os.path.join(os.path.dirname(__file__), ENV_TEMPLATE_DIR) TEMPLATE_FILES = [ # see notes about klmanage.py below ('klmanage.py', 'klmanage.py'), ('settings.py', 'settings.py'), ] if opts.name == '.': dest_path = os.getcwd() else: dest_path = os.path.join(os.getcwd(), opts.name) os.mkdir(dest_path) render_args = { 'SECRET_KEY' : random_string(32), 'PROJECTS_DIR' : dest_path, } for fname, out_fname in TEMPLATE_FILES: template_path = os.path.join(ENV_TEMPLATE_PATH, fname) with open(template_path) as f: template_data = f.read() document_data = Template(template_data).render(**render_args) out_path = os.path.join(dest_path, out_fname) with open(out_path, 'w') as f: f.write(document_data) # explicitly chmod +x klmanage.py klmanage_path = os.path.join(dest_path, 'klmanage.py') st = os.stat(klmanage_path) os.chmod(klmanage_path, st.st_mode | stat.S_IEXEC) _dirname = 'current directory' if opts.name == '.' else opts.name print('Kaylee environment has been successfully created in {}' .format(_dirname))