Exemple #1
0
    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,
        }
Exemple #3
0
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))