예제 #1
0
def signup(request):

    if request.method != 'POST':
        return HttpResponseNotAllowed(['POST'])

    try:
        body = get_body_as_json(request.body)
        username = retrieve_username(body)
        password = retrieve_password(body)
        email = retrieve_email(body)
        if username == '' or password == '' or email == '':
            return HttpResponseBadRequest()
    except:
        return HttpResponseBadRequest()

    try:
        new_user = Users(username=username, password=password, email=email)
        user_id = new_user.pk
        new_user.save()
    except:
        return HttpResponseForbidden()

    joined = get_user(username).joined.__str__()
    token = get_token_as_string(username, user_id, joined)
    response = JsonResponse({'token': token})
    return response


#

# q = request.GET.get('q')
예제 #2
0
 def test_login(self):
     u = Users(username='******', email='*****@*****.**', password='******')
     u.save()
     url = reverse('login')
     data = {'email': '*****@*****.**', 'password': '******'}
     response = self.client.post(url, data, format='json')
     self.assertEqual(response.status_code, status.HTTP_200_OK)  
예제 #3
0
 def test_update_username_without_login(self):   
     u = Users(id=6, username='******', email='*****@*****.**', password='******')
     u.save()
     url = reverse('show-user', args=[6])
     data = {'username': '******'}
     response = self.client.put(url, data, format='json')
     self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)     
예제 #4
0
    def test_unfollow_user_without_login(self):
        u = Users(id=14, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()
        u = Users(id=15, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()

        url = reverse('follow', args=[15])
        response = self.client.delete(url)
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
예제 #5
0
    def test_follow_user_without_login(self):
        u = Users(id=10, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()
        u = Users(id=11, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()

        url = reverse('follow', args=[11])
        response = self.client.post(url)
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
예제 #6
0
    def test_delete_user_with_login(self):   
        u = Users(id=9, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()

        url = reverse('login')
        data = {'email': '*****@*****.**', 'password': '******'}
        response = self.client.post(url, data, format='json')

        if self.assertEqual(response.status_code, status.HTTP_200_OK):
            url = reverse('show-user', args=[9])
            response = self.client.delete(url, data, format='json')
            self.assertEqual(response.status_code, status.HTTP_200_OK)       
예제 #7
0
def register():
    """Register a user"""
    data = {
        'username': request.json.get('username'),
        'email': request.json.get('email'),
        'password': request.json.get('password'),
    }
    check_valid(RegisterUserSchema().validate(data))

    user = Users(
        username=data['username'], email=data['email'],
        password=data['password'])
    user.save()
    return jsonify({'message': 'Registered Successfully.'}), 201
예제 #8
0
    def test_unfollow_user_with_login_without_followed_fail(self):
        u = Users(id=16, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()
        u = Users(id=17, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()

        url = reverse('login')
        data = {'email': '*****@*****.**', 'password': '******'}
        response = self.client.post(url, data, format='json')

        if self.assertEqual(response.status_code, status.HTTP_200_OK):
            url = reverse('follow', args=[17])
            response = self.client.post(url)
            self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
예제 #9
0
    def test_follow_user_with_login(self):
        u = Users(id=12, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()
        u = Users(id=13, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()

        url = reverse('login')
        data = {'email': '*****@*****.**', 'password': '******'}
        response = self.client.post(url, data, format='json')

        if self.assertEqual(response.status_code, status.HTTP_200_OK):
            url = reverse('follow', args=[13])
            response = self.client.post(url)
            self.assertEqual(response.status_code, status.HTTP_200_OK) 
예제 #10
0
    def test_unfollow_user_with_login_with_followed_success(self):
        u = Users(id=18, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()
        u = Users(id=19, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()

        url = reverse('login')
        data = {'email': '*****@*****.**', 'password': '******'}
        response = self.client.post(url, data, format='json')

        if self.assertEqual(response.status_code, status.HTTP_200_OK):
            url = reverse('follow', args=[19])
            response = self.client.post(url)
            if self.assertEqual(response.status_code, status.HTTP_200_OK):        
                url = reverse('follow', args=[19])
                response = self.client.delete(url)
                self.assertEqual(response.status_code, status.HTTP_200_OK)
예제 #11
0
def run():
    file = open('scripts/test.json')  # Fetching the json file
    data = json.load(file)
    for i in data['members']:
        user = Users()  # Creating an user object
        user.id = i['id']
        user.email = i['email']
        user.tz = i['tz']
        user.real_name = i['real_name']
        user.save()

        for j in i['activity_periods']:
            activity = Activities()
            datetime_object = datetime.strptime(j['start_time'], '%b %d %Y %I:%M%p')  # converting given datetime format
            activity.start_time = datetime_object
            datetime_object2 = datetime.strptime(j['end_time'], '%b %d %Y %I:%M%p')
            activity.end_time = datetime_object2
            activity.user = user
            activity.save()
예제 #12
0
    def test_update_user_with_login(self):   
        u = Users(id=7, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()

        url = reverse('login')
        data = {'email': '*****@*****.**', 'password': '******'}
        response = self.client.post(url, data, format='json')

        if self.assertEqual(response.status_code, status.HTTP_200_OK):
            url = reverse('show-user', args=[7])
            data = {'username': '******', 'email':'*****@*****.**', 'password':'******', 'birthday':'1994-04-13', 'company':'Givery', 'location':'Tokyo'}
            response = self.client.put(url, data, format='json')
            self.assertEqual(response.status_code, status.HTTP_200_OK)     
            self.assertEqual(Users.objects.get().username, 'user7')
            self.assertEqual(Users.objects.get().email, '*****@*****.**') 
            self.assertEqual(Users.objects.get().password, 'password7')
            self.assertEqual(Users.objects.get().birthday, datetime.date(1994, 4, 13))   
            self.assertEqual(Users.objects.get().company, 'Givery')   
            self.assertEqual(Users.objects.get().location, 'Tokyo')   
예제 #13
0
class BaseTestCase(TestCase):
    """A base test case for flask-tracking."""

    def setUp(self):
        self.app = create_app('testing')
        self.client = self.app.test_client()
        self.app.app_context().push()
        with self.app.app_context():
            db.create_all()
        self.user1 = Users(
            username='******', email='*****@*****.**',
            password='******')
        self.user1.save()
        self.user2 = Users(
            username='******', email='*****@*****.**',
            password='******')
        self.user2.save()
        self.project1 = Projects(
            name="User1's Project", description='sample project',
            contract_value='5000',
            percentage_return='22',
            start_date=datetime.date.today(),
            end_date=datetime.date.today()+datetime.timedelta(days=10),
            user_email=self.user1.email)
        self.project1.save()
        self.project2 = Projects(
            name="User2's Project", description='sample project',
            contract_value='3000',
            percentage_return='10',
            start_date=datetime.date.today(),
            end_date=datetime.date.today()+datetime.timedelta(days=10),
            user_email=self.user2.email)
        self.project2.save()
        self.bid = Bids(
            amount='200', date=datetime.date.today(),
            user_email=self.user1.email, project_id=self.project2.id,)
        self.bid.save()

    def tearDown(self):
        with self.app.app_context():
            db.session.remove()
            db.drop_all()
예제 #14
0
def login(request):
    form = LoginForm(request.POST)
    if form.is_valid():
        captcha_from_user = form.cleaned_data['captcha']
        captcha_from_sess = request.session.get('captcha', '')
        if captcha_from_sess.lower() != captcha_from_user.lower():
            data = {'code': 302, 'message': '验证码不匹配'}
        else:
            tel = form.cleaned_data['tel']
            user = Users.objects.filter(u_tel=tel).first()
            if user:
                code_from_session = request.session.get('tel')
                code_from_user = request.POST.get('phoneCode')
                if code_from_session == code_from_user:
                    request.session['user'] = user
                    data = {'code': 200, 'message': '校验成功'}
                else:
                    hint = '用户名或验证码错误'
                    data = {'code': 300, 'message': hint}
            else:
                with atomic():
                    wallet = Wallet()
                    wallet.save()
                    user = Users()
                    user.id = wallet
                    user.u_tel = tel
                    user.u_nickname = '用户{}'.format(uuid.uuid4())
                    user.save()
                    role = Roles.objects.filter(id=1).first()
                    user_role = Userrole()
                    user_role.role = role
                    user_role.user = user
                    user_role.save()
                    request.session['user'] = user
                    data = {'code': 201, 'message': '用户注册成功,成功登陆'}
    else:
        hint = '请输入有效的登录信息'
        data = {'code': 301, 'message': hint}
    return JsonResponse(data)
예제 #15
0
 def test_delete_username_without_login(self):   
     u = Users(id=8, username='******', email='*****@*****.**', password='******')
     u.save()
     url = reverse('show-user', args=[8])
     response = self.client.put(url)
     self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)     
예제 #16
0
 def test_show_user(self):
     u = Users(id=5, username='******', email='*****@*****.**', password='******')
     u.save()
     url = reverse('show-user', args=[5])
     response = self.client.get(url)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
예제 #17
0
    def test_pager_without_param(self):
        u = Users(id=20, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()
        u = Users(id=21, username='******', email='*****@*****.**', password='******', birthday='1991-04-17')
        u.save()
        u = Users(id=22, username='******', email='*****@*****.**', password='******', birthday='1992-04-17')  
        u.save()
        u = Users(id=23, username='******', email='*****@*****.**', password='******', birthday='1993-04-17')
        u.save()
        u = Users(id=24, username='******', email='*****@*****.**', password='******', birthday='1994-04-17')
        u.save()
        u = Users(id=25, username='******', email='*****@*****.**', password='******', birthday='1995-04-17')
        u.save()
        u = Users(id=26, username='******', email='*****@*****.**', password='******', birthday='1996-04-17')
        u.save()
        u = Users(id=27, username='******', email='*****@*****.**', password='******', birthday='1991-04-17')
        u.save()
        u = Users(id=28, username='******', email='*****@*****.**', password='******', birthday='1990-04-17')
        u.save()
        u = Users(id=29, username='******', email='*****@*****.**', password='******', birthday='1990-04-13')
        u.save()
        u = Users(id=30, username='******', email='*****@*****.**', password='******', birthday='1991-04-13')
        u.save()

        url = reverse('user-list')
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)  
        self.assertEqual(response['count'], '10')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing20')

        url = reverse('user-list', kwargs={'offset':5})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '5')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing25')

        url = reverse('user-list', kwargs={'offset': 0, 'limit':5})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '5')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing20')

        url = reverse('user-list', kwargs={'offset': 2, 'limit':5})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '3')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing22')

        url = reverse('user-list', kwargs={'limit':5})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '5')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing20')

        url = reverse('user-list', kwargs={'orderBy':'birthday'})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '10')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['birthday'], '1990-04-13')

        url = reverse('user-list', kwargs={'orderBy':'birthday', 'order': 'desc'})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '10')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['birthday'], '1997-04-17')

        """
        Add new User 'testing30' to test filtering option
        """               

        u = Users(id=31, username='******', email='*****@*****.**', password='******', birthday='1991-04-13')
        u.save()

        url = reverse('user-list', kwargs={'filterOn':'username'})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '10')
        self.assertEqual(response['total_count'], '12')

        url = reverse('user-list', kwargs={'filterOn':'username', 'filterValue': 'testing30'})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '2')
        self.assertEqual(response['total_count'], '12')











                          
    def test_pager_without_param(self):
        u = Users(id=20, username='******', email='*****@*****.**', password='******', birthday='1997-04-17')
        u.save()
        u = Users(id=21, username='******', email='*****@*****.**', password='******', birthday='1991-04-17')
        u.save()
        u = Users(id=22, username='******', email='*****@*****.**', password='******', birthday='1992-04-17')  
        u.save()
        u = Users(id=23, username='******', email='*****@*****.**', password='******', birthday='1993-04-17')
        u.save()
        u = Users(id=24, username='******', email='*****@*****.**', password='******', birthday='1994-04-17')
        u.save()
        u = Users(id=25, username='******', email='*****@*****.**', password='******', birthday='1995-04-17')
        u.save()
        u = Users(id=26, username='******', email='*****@*****.**', password='******', birthday='1996-04-17')
        u.save()
        u = Users(id=27, username='******', email='*****@*****.**', password='******', birthday='1991-04-17')
        u.save()
        u = Users(id=28, username='******', email='*****@*****.**', password='******', birthday='1990-04-17')
        u.save()
        u = Users(id=29, username='******', email='*****@*****.**', password='******', birthday='1990-04-13')
        u.save()
        u = Users(id=30, username='******', email='*****@*****.**', password='******', birthday='1991-04-13')
        u.save()

        url = reverse('user-list')
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)  
        self.assertEqual(response['count'], '10')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing20')

        url = reverse('user-list', kwargs={'offset':5})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '5')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing25')

        url = reverse('user-list', kwargs={'offset': 0, 'limit':5})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '5')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing20')

        url = reverse('user-list', kwargs={'offset': 2, 'limit':5})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '3')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing22')

        url = reverse('user-list', kwargs={'limit':5})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '5')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['username'], 'testing20')

        url = reverse('user-list', kwargs={'orderBy':'birthday'})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '10')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['birthday'], '1990-04-13')

        url = reverse('user-list', kwargs={'orderBy':'birthday', 'order': 'desc'})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '10')
        self.assertEqual(response['total_count'], '11')
        self.assertEqual(response.data[0]['birthday'], '1997-04-17')

        """
        Add new User 'testing30' to test filtering option
        """               

        u = Users(id=31, username='******', email='*****@*****.**', password='******', birthday='1991-04-13')
        u.save()

        url = reverse('user-list', kwargs={'filterOn':'username'})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '10')
        self.assertEqual(response['total_count'], '12')

        url = reverse('user-list', kwargs={'filterOn':'username', 'filterValue': 'testing30'})
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response['count'], '2')
        self.assertEqual(response['total_count'], '12')