python类create()的实例源码

demo_content.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 33 收藏 0 点赞 0 评论 0
def user_creator(num_user):
    """Create users from an Italian-like context. Due to param in factory create 'it_iT'."""
    for i in range(num_user):
        user_uuid = fake.uuid4()
        first_name = fake.first_name()
        last_name = fake.last_name()
        email_provider = fake.free_email_domain()
        email_user = '{}.{}@{}'.format(
            first_name.lower(), last_name.lower(), email_provider)
        password = fake.password(length=3, special_chars=False, digits=True,
                                 upper_case=True, lower_case=False)
        User.create(
            uuid=user_uuid,
            first_name=first_name,
            last_name=last_name,
            email=email_user,
            password=User.hash_password(password)
        )
demo_content.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def item_creator(num_item):
    LIST_CATEGORIES = ['scarpe', 'accessori', 'abbigliamento uomo', 'abbigliamento donna']
    for i in range(num_item):
        item_id = fake.uuid4()
        item_name = fake.sentence(nb_words=3, variable_nb_words=True)
        item_price = fake.pyfloat(left_digits=2, right_digits=2, positive=True)
        item_category = random.choice(LIST_CATEGORIES)
        item = Item.create(
            uuid=item_id,
            name=item_name,
            price=item_price,
            description=fake.paragraph(
                nb_sentences=3, variable_nb_sentences=True),
            availability=random.randint(35, 60),
            category=item_category,
        )
        picture_creator(num_item, i, item)
decorators_t.py 文件源码 项目:dark-chess 作者: AHAPX 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def test_authenticated(self, request):
        func = authenticated(lambda *a, **k: 'success')
        request.json.get.return_value = '1234'
        # test decorator, token is not in cache
        self.assertEqual(func(), 'success')
        self.assertIsNone(request.user)
        self.assertIsNone(request.auth)
        # test decorator, token is in cache, no user
        set_cache('1234', 1)
        self.assertEqual(func(), 'success')
        self.assertIsNone(request.user)
        self.assertIsNone(request.auth)
        # test decorator success
        user = User.create(username='user1', password='passwd')
        set_cache('1234', user.pk)
        self.assertEqual(func(), 'success')
        self.assertEqual(request.user.pk, user.pk)
        self.assertEqual(request.auth, '1234')
decorators_t.py 文件源码 项目:dark-chess 作者: AHAPX 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_use_cache(self):
        def _func(a, b):
            invert_color(a)
            return 'ok'

        func = use_cache(10, name='test_func')(_func)
        a, b = Game.create(white='1234', black='qwer'), delete_cache
        # run first time, no cache
        with patch('tests.decorators_t.invert_color') as mock:
            self.assertEqual(func(a, b=b), 'ok')
            mock.assert_called_once_with(a)
        # run second time, results from cached
        with patch('tests.decorators_t.invert_color') as mock:
            self.assertEqual(func(a, b=b), 'ok')
            self.assertFalse(mock.called)
        # delete cache and run again, no cache
        delete_cache(get_cache_func_name('test_func', a, b=b))
        with patch('tests.decorators_t.invert_color') as mock:
            self.assertEqual(func(a, b=b), 'ok')
            mock.assert_called_once_with(a)
test_transactions.py 文件源码 项目:aiopeewee 作者: kszucs 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def test_atomic_with_delete(flushdb):
    for i in range(3):
        await User.create(username=f'u{i}')

    async with db.atomic():
        user = await User.get(User.username == 'u1')
        await user.delete_instance()

    usernames = [u.username async for u in User.select()]
    assert sorted(usernames) == ['u0', 'u2']

    async with db.atomic():
        async with db.atomic():
            user = await User.get(User.username == 'u2')
            await user.delete_instance()

    usernames = [u.username async for u in User.select()]
    assert usernames == ['u0']
demo_content.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_databases():
    """create a list with the name of each .db file from main folder."""
    list_of_db = glob.glob('*.db')
    return list_of_db
demo_content.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def picture_creator(num_picture, index, item):
    ALLOWED_EXTENSION = ['jpg', 'jpeg', 'png', 'gif']
    pictures_path = get_random_pictures(num_picture)
    picture_id = fake.uuid4()
    extension = random.choice(ALLOWED_EXTENSION)
    Picture.create(
        uuid=picture_id,
        extension=extension,
        item=item
    )
    image_folder = utils.get_image_folder()
    if not os.path.exists(image_folder):
        os.makedirs(image_folder)
    shutil.copy2(pictures_path[index], '/{}/{}.{}'.format(image_folder, picture_id, extension))
demo_content.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def order_creator(num_order):
    for i in range(num_order):
        order_id = fake.uuid4()
        Order.create(
            uuid=order_id,
            user=User.select().order_by(fn.Random()).get(),
            total_price=0,
            delivery_address=Address.select().order_by(fn.Random()).get(),
            items=[]
        )
demo_content.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def favorite_creator(num_favorites):
    for i in range(num_favorites):
        Favorite.create(
            uuid=fake.uuid4(),
            item=Item.select().order_by(fn.Random()).get(),
            user=User.select().order_by(fn.Random()).get(),
            )
test_utils.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self, cls):
        self.original = cls.create
        self.uuid_generator = mock_uuid_generator()
test_utils.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def get_all_models_names():
    """
    Returns the names of all the classes defined inside the 'models' module.
    """
    return [name for
            (name, cls) in inspect.getmembers(
                sys.modules['models'], inspect.isclass)
            if cls.__module__ is 'models']


# ###########################################################
# Peewee models helpers
# Functions to create new instances with overridable defaults
test_utils.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def add_user(email, password, id=None, first_name='John', last_name='Doe'):
    """
    Create a single user in the test database.
    If an email is provided it will be used, otherwise it will be generated
    by the function before adding the User to the database.
    """
    email = email or 'johndoe{}@email.com'.format(int(random.random() * 100))

    return User.create(
        first_name=first_name,
        last_name=last_name,
        email=email,
        password=User.hash_password(password),
        uuid=id or uuid.uuid4(),
    )
test_utils.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def add_address(user, country='Italy', city='Pistoia', post_code='51100',
                address='Via Verdi 12', phone='3294882773', id=None):

    return Address.create(
        uuid=id or uuid.uuid4(),
        user=user,
        country=country,
        city=city,
        post_code=post_code,
        address=address,
        phone=phone,
    )
test_utils.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def add_favorite(user, item, id=None):
    """Link the favorite item to user."""
    return Favorite.create(
        uuid=id or uuid.uuid4(),
        item=item,
        user=user,
    )
test_utils.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def add_item(name='Item Test', price='15.99',
             description='test test test', id=None, category='scarpe'):
    return Item.create(
        uuid=id or uuid.uuid4(),
        name=name,
        price=price,
        description=description,
        availability=random.randint(35, 60),
        category=category,
    )


# ###########################################################
# Flask helpers
# Common operations for flask functionalities
user.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def post(self):
        """ Add an user to the database."""
        data = request.get_json(force=True)

        errors = User.validate_input(data)
        if errors:
            return errors, BAD_REQUEST

        # Extract the user attributes to check and generate the User row
        data = data['data']['attributes']

        # If email is present in the database return a BAD_REQUEST response.
        if User.exists(data['email']):
            msg = {'message': 'email already present.'}
            return msg, CONFLICT

        new_user = User.create(
            uuid=uuid.uuid4(),
            first_name=data['first_name'],
            last_name=data['last_name'],
            email=data['email'],
            password=User.hash_password(data['password'])
        )
        notify_new_user(first_name=new_user.first_name,
                        last_name=new_user.last_name)

        # If everything went OK return the newly created user and CREATED code
        # TODO: Handle json() return value (data, errors) and handle errors not
        # empty
        return generate_response(new_user.json(), CREATED)
validators_t.py 文件源码 项目:dark-chess 作者: AHAPX 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def test_base(self):
        # init fields
        BaseValidator.fields = {
            'f1': dict(type=str, required=True),
            'f2': dict(type=int),
            'f3': dict(type=str, default='ok'),
        }
        # try to create validator without reqired field
        with self.assertRaises(errors.ValidationRequiredError, msg='f1'):
            BaseValidator(MockRequest(form={'f2': '42'}))
        # try to create validator with wrong type
        with self.assertRaises(errors.ValidationError, msg='f2'):
            BaseValidator(MockRequest(form={'f1': 'v1', 'f2': 'v2'}))
        # create validator without not required field and check it
        val = BaseValidator(MockRequest(form={'f1': 'v1'}))
        self.assertEqual(val.form, {'f1': 'v1', 'f2': None, 'f3': 'ok'})
        # create validator with all fields and check it
        val = BaseValidator(MockRequest(form={'f1': 'v1', 'f2': '42'}))
        self.assertEqual(val.form, {'f1': 'v1', 'f2': 42, 'f3': 'ok'})
        # test is_valid and get_error
        self.assertIsNone(val.get_error())
        self.assertFalse(val.error('test'))
        self.assertEqual(val.get_error(), 'test')
        self.assertTrue(val.is_valid())
        self.assertIsNone(val.get_error())
        self.assertEqual(val.form, val.cleaned_data)
decorators_t.py 文件源码 项目:dark-chess 作者: AHAPX 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_login_required(self, request):
        request.user = None
        func = login_required(lambda *a, **k: 'success')
        with patch('decorators.send_error') as mock:
            mock.return_value = '_error'
            self.assertEqual(func(), '_error')
            mock.assert_called_once_with('not authorized')
        request.user = User.create(username='user1', password='passwd')
        self.assertEqual(func(), 'success')
decorators_t.py 文件源码 项目:dark-chess 作者: AHAPX 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_with_game_2(self, request):
        request.json.get.return_value = 'user_token'
        # create game with white user and try to get it anonymously
        func = authenticated(with_game(lambda *a, **k: (a, k)))
        user = User.create(username='user1', password='passwd')
        game = Game.create(white='1234', black='qwer', player_white=user)
        with patch('decorators.send_error') as mock:
            func('1234')
            mock.assert_called_once_with('wrong user')
        self.assertEqual(func('qwer')[0][0].model.pk, game.pk)
        # set auth and check again
        set_cache('user_token', user.pk)
        self.assertEqual(func('1234')[0][0].model.pk, game.pk)
tweetimporter.py 文件源码 项目:twitter-bot-detection 作者: franckbrignoli 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def createUser(self, screen_name, is_bot=False):
        api_user = self.twitter_client.user_shows(screen_name=screen_name)

        user = User.create(
            screen_name=screen_name,
            is_bot=is_bot,
            followers=api_user.followers_count,
            following=api_user.friends_count
        )

        return user
tweetimporter.py 文件源码 项目:twitter-bot-detection 作者: franckbrignoli 项目源码 文件源码 阅读 15 收藏 0 点赞 0 评论 0
def fromUser(self, screen_name, tweets_number=10, is_bot=False):
        user = self.createUser(screen_name, is_bot)

        tweets = self.twitter_client.user_timeline(screen_name=screen_name, count=tweets_number)
        for i, status in enumerate(tweets):
            tweet = status._json
            text = tweet['text']
            date = tweet['created_at']
            entities = tweet['entities']
            user_mentions = entities['user_mentions']
            mentions_list = []

            if len(user_mentions) > 0:
                for mention in user_mentions:
                    mentions_list.append(mention['screen_name'])

            text_string = unicodedata.normalize('NFKD', text).encode('ascii','ignore')
            date_string = unicodedata.normalize('NFKD', date).encode('ascii','ignore')
            name_mentions_string = ",".join(mentions_list)

            Tweet.create(
                    user = user,
                    text = text_string,
                    date = date_string,
                    source = status.source,
                    mentions = name_mentions_string
            )
create_superuser.py 文件源码 项目:ecommerce_api 作者: nbschool 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def main(first_name, last_name, email, password):
    click.echo('####################\n####################\nADMIN USER SCRIPT\n')
    click.echo('####################\n####################\n')
    click.echo('Here you can create an admin user. For eachone you have to insert:\n')
    click.echo('first name\n-last name\n-email\n-password')

    if not first_name:
        first_name = click.prompt('Please enter your first name')
    if not last_name:
        last_name = click.prompt('Please enter your last name')
    if not email:
        email = click.prompt('Please enter a valid email')
    if not password:
        password = click.prompt('Please enter your password')

    request_data = {
        'first_name': first_name,
        'last_name': last_name,
        'email': email,
        'password': password
    }

    for field in request_data:
        try:
            value = request_data[field]
            non_empty_str(value, field)
        except ValueError:
            print('ERROR! Some fields are empty or required')
            sys.exit(-1)

    # If email is present in the database return a ERROR and close the program.
    if User.exists(request_data['email']):
        print('ERROR! email already exists')
        sys.exit(-1)

    User.create(
        uuid=uuid.uuid4(),
        first_name=first_name,
        last_name=last_name,
        email=email,
        password=User.hash_password(password),
        admin=True
    )
    print("Great! Insert successfully")


问题


面经


文章

微信
公众号

扫码关注公众号