Пример #1
0
def test_group_edit_allowed(client, reset_ct_group, own_group, image):
    ''' user can edit groups he is head of '''
    test_user = TEST_USER[0]

    # login
    login(client, test_user['email'], test_user['password'])

    # edit
    rv = edit_group(client, own_group,
                    description='Dies ist ein Test',
                    where='In der Ecclesia',
                    when='Jeden Sonntag',
                    audience='Jeder',
                    image=image)

    # db entry
    avatar_id = models.GroupMetadata.query.first().avatar_id

    assert rv.status_code == 200
    assert 'Dies ist ein Test' in rv.data
    assert 'Gruppe geaendert' in rv.data
    assert 'In der Ecclesia' in rv.data
    assert 'Jeden Sonntag' in rv.data
    assert 'Jeder' in rv.data
    assert '{}.jpg'.format(avatar_id) in rv.data

    # check group overview
    rv = client.get('/groups')

    assert '{}-thumb.jpg'.format(avatar_id) in rv.data
    assert 'In der Ecclesia' in rv.data
    assert 'Jeden Sonntag' in rv.data
Пример #2
0
def test_random_prayer(client):
    ''' random prayer view '''
    test_user = TEST_USER[1]
    prayer = 'Dies ist ein Test!'
    name = 'Testname'

    login(client, test_user['email'], test_user['password'])
    add_prayer(client, prayer, name)

    # prayer with show_user
    rv = client.get('/prayer')
    soup = BeautifulSoup(rv.data)

    assert '{}'.format(name) == soup.find_all('div',
                                              class_='panel-heading')[0].text

    # prayer body
    assert prayer in soup.find_all('div', class_='panel-body')[0].text

    # prayer with unabled show_user
    edit_prayer(client, 1, prayer, active=True)
    rv = client.get('/prayer')
    soup = BeautifulSoup(rv.data)

    assert soup.find_all('div', class_='panel-heading')[0].text == ''
Пример #3
0
def test_profile_session_active_state(client, ct_same_username_and_password):
    ''' active state in session after login and visiting other profiles.
    activate different user in session if the visited profile is allowed to
    use. dont forget the active state on visiting a different users profile.
    '''
    test_user = ct_same_username_and_password

    with client as c:
        login(c, test_user[0]['email'], test_user[0]['password'])

        # first state of active after logged in
        assert flask.session['user'][0]['active'] is True
        assert flask.session['user'][1]['active'] is False

        # go to second user profile
        c.get('/profile/{}'.format(flask.session['user'][1]['id']))

        assert flask.session['user'][0]['active'] is False
        assert flask.session['user'][1]['active'] is True

        # go to a profile that doesnt belong to test user.
        # active state shouldnt have changed
        c.get('/profile/{}'.format(TEST_USER[0]['id']))

        assert flask.session['user'][0]['active'] is False
        assert flask.session['user'][1]['active'] is True
Пример #4
0
 def testLoggedIn(self):
     self.browser.get(Logins.login_url)
     helper.login(self)
     elem = self.browser.find_element_by_css_selector(
         '#topNavBar > ul.nav.navbar-nav.navbar-right > li > a')
     print("%%%%%%" + elem.text)
     self.assertTrue(elem.text == ' Logout')
Пример #5
0
def test_whatsup_feed_links(test_user, client):
    # prepare everything
    login(client, test_user['email'], test_user['password'])
    token = auth.generate_feed_auth(test_user)

    # overview
    rv = client.get('/whatsup')

    soup = BeautifulSoup(rv.data)
    feed_links = [i['href'] for i in soup.find_all('link')
                  if 'feed' in i['href']]

    assert len(feed_links) == 2
    assert feed_links[0] == '/feeds/whatsup.atom?token={}'.format(token)
    assert feed_links[1] == '/feeds/whatsup-comments.atom?token={}'.format(
        token)

    # new
    rv = client.get('/whatsup/new')

    soup = BeautifulSoup(rv.data)
    feed_links = [i['href'] for i in soup.find_all('link')
                  if 'feed' in i['href']]

    assert len(feed_links) == 2
    assert feed_links[0] == '/feeds/whatsup.atom?token={}'.format(token)
    assert feed_links[1] == '/feeds/whatsup-comments.atom?token={}'.format(
        token)
Пример #6
0
def teacher_reg():
    form = TeacherRegisterForm()

    if form.validate_on_submit():

        # right here. check if school id is valid.
        id = form.school_id.data

        try:
            teacher = Teacher.register(first_name=form.first_name.data,
                                       last_name=form.last_name.data,
                                       title=form.title.data,
                                       school_id=form.school_id.data,
                                       username=form.username.data,
                                       password=form.password.data)
            db.session.commit()

        except IntegrityError:
            flash("Username already taken", 'bad')
            return render_template('register/teacher-reg.html', form=form)

        login(teacher)

        return redirect(f'/teacher/{teacher.id}')

    return render_template('register/teacher-reg.html', form=form)
 def setUp(self):
     runserver.app.config['TESTING'] = True
     runserver.app.config['DB_NAME_USERS'] = 'test_users'
     self.app = runserver.app.test_client()
     #helper.create_neo4j_demo_user()
     helper.login(self.app)
     helper.my_patients_neo4j_data()
Пример #8
0
def test_group_edit_button(client, test_user, allowed):
    ''' edit button on group page '''
    login(client, test_user['email'], test_user['password'])

    rv = client.get('/group/1')
    edit_button = 'edit' in rv.data

    assert edit_button == allowed
Пример #9
0
def test_edit_profile_button(client, test_user):
    login(client, test_user['email'], test_user['password'])

    rv = client.get('/profile/{}'.format(get_wrong_user_id(test_user['id'])))
    assert 'edit' not in rv.data

    rv = client.get('/profile/{}'.format(test_user['id']))
    assert 'edit' in rv.data
Пример #10
0
def test_search_whatsup(client, clean_whoosh_index):
    test_user = TEST_USER[0]
    login(client, test_user['email'], test_user['password'])

    # add whatsup posts
    add_whatsup_post(client, 'erstes subject', 'erster body')
    sleep(1)
    add_whatsup_post(client, 'zweites subject', 'zweiter body')
    sleep(1)
    add_whatsup_post(client, 'drittes subject', 'dritter body')
    sleep(1)

    # add comment
    add_whatsup_comment(client, 1, 'erster kommentar')
    add_whatsup_comment(client, 1, 'zweiter kommentar')

    # search for erstes subject
    rv = models.search_whatsup_posts('erstes')

    assert len(rv) == 1
    assert rv[0].subject == 'erstes subject'
    assert rv[0].body == 'erster body'

    rv = models.search_whatsup_posts('erstes subject')

    assert len(rv) == 1
    assert rv[0].subject == 'erstes subject'
    assert rv[0].body == 'erster body'

    # search for erster body
    rv = models.search_whatsup_posts('erster body')

    assert len(rv) == 1
    assert rv[0].subject == 'erstes subject'
    assert rv[0].body == 'erster body'

    # search for the word subject
    rv = [i.subject for i in models.search_whatsup_posts('subject')]

    assert len(rv) == 3
    assert 'erstes subject' in rv
    assert 'zweites subject' in rv
    assert 'drittes subject' in rv

    # search for the word body
    rv = [i.subject for i in models.search_whatsup_posts('body')]

    assert len(rv) == 3
    assert 'erstes subject' in rv
    assert 'zweites subject' in rv
    assert 'drittes subject' in rv

    # search for comment
    rv = models.search_whatsup_comments('erster')

    assert len(rv) == 1
    assert rv[0].body == 'erster kommentar'
Пример #11
0
def test_drivers_area_order(driver, driver2, admin_token):
    driver1_email = driver.get('email')
    driver1_password = 123456

    driver2_email = driver2.get('email')
    driver2_password = 123456

    driver1_login_json = login("Driver", driver1_email, driver1_password)
    assert driver1_login_json['status'] == "SUCCESS"
    if driver1_login_json['data']['status'] == 'Away-Off':
        print('Driver ==> {} <== status confirmed Away-Off after first login'.
              format(driver1_email))

    driver1_token = driver1_login_json['data']['api_token']
    print('driver1_token: ', driver1_token)
    '''take care that here we are calling change status api twice in order to be able to change status'''
    change_status_json = update_status(driver1_token, "Available")
    change_status_json = update_status(driver1_token, "Available")
    assert change_status_json['status'] == "SUCCESS"
    if change_status_json['status'] == "SUCCESS":
        print(
            'Driver ==> {} <== status has been successfully changed into Available'
            .format(driver1_email))

    driver2_login_json = login("Driver", driver2_email, driver2_password)
    assert driver2_login_json['status'] == "SUCCESS"
    if driver2_login_json['data']['status'] == 'Away-Off':
        print('Driver ==> {} <== status confirmed Away-Off after first login'.
              format(driver2_email))

    driver2_token = driver2_login_json['data']['api_token']
    print('driver2_token: ', driver2_token)
    '''take care that here we are calling change status api twice in order to be able to change status'''
    change_status_json = update_status(driver2_token, "Available")
    change_status_json = update_status(driver2_token, "Available")
    assert change_status_json['status'] == "SUCCESS"
    if change_status_json['status'] == "SUCCESS":
        print(
            'Driver ==> {} <== status has been successfully changed into Available'
            .format(driver2_email))

    point = {"lat": 30.06657871622343, "lng": 31.30840301513672}

    driver1_tracking_json = update_location(driver1_token, point['lat'],
                                            point['lng'])
    assert driver1_tracking_json['status'] == 'SUCCESS'
    if driver1_tracking_json['status'] == 'SUCCESS':
        print('Driver ==> {} <== location has been set successfully'.format(
            driver1_email))

    driver2_tracking_json = update_location(driver2_token, point['lat'],
                                            point['lng'])
    assert driver2_tracking_json['status'] == 'SUCCESS'
    if driver2_tracking_json['status'] == 'SUCCESS':
        print('Driver ==> {} <== location has been set successfully'.format(
            driver2_email))
 def setUp(self):
     load_data.load_data()
     runserver.app.config['TESTING'] = True
     runserver.app.config['DB_NAME'] = 'test_uclex'
     runserver.app.config['DB_NAME_HPO'] = 'test_hpo'
     runserver.app.config['DB_NAME_PATIENTS'] = 'test_patients'
     runserver.app.config['DB_NAME_USERS'] = 'test_users'
     self.app = runserver.app.test_client()
     helper.create_neo4j_demo_user()
     helper.login(self.app)
Пример #13
0
def test_mail_access(client, test_user):
    # access if not logged in
    rv = client.get('/mail/group/1')
    assert rv.status_code == 302
    assert 'You should be redirected automatically' in rv.data

    # a bogus mail url
    login(client, test_user['email'], test_user['password'])
    rv = client.get('/mail/foo/1')
    assert rv.status_code == 404
Пример #14
0
def test_logout():
    """ logging as a user
    take an action ( go to profile page ==> u must get that user
    logout and go to profile page ==> you should not get user profile  """
    login("*****@*****.**", "Agenda@2020")
    logout()


# this is just a comment
# this is another commen
Пример #15
0
def test_access_index(client, test_user):
    # logged out
    rv = client.get('/')
    assert rv.status_code == 302

    # logged in
    login(client, test_user['email'], test_user['password'])

    rv = client.get('/')
    assert rv.status_code == 200
Пример #16
0
def test_navbar_profile_links_same_auth(client, ct_same_username_and_password):
    ''' profile links in navbar for same email password combination '''
    test_user = ct_same_username_and_password[0]

    login(client, test_user['email'], test_user['password'])

    rv = client.get('/')

    for user in ct_same_username_and_password:
        assert '{} {}'.format(user['vorname'], user['name']) in rv.data
Пример #17
0
def test_edit_index(client, image):
    # logged out
    rv = client.get('/edit')

    assert rv.status_code == 302

    # wrong user
    test_user = TEST_USER[1]
    login(client, test_user['email'], test_user['password'])
    rv = client.get('/edit')

    assert rv.status_code == 401

    logout(client)

    # right user
    test_user = TEST_USER[0]
    login(client, test_user['email'], test_user['password'])

    rv = client.get('/edit')

    assert rv.status_code == 200

    rv = edit_index(client, image, 'http://eins.com', 'http://zwei.com',
                    'http://drei.com', 'http://vier.com')

    # check db
    rv = models.FrontPage.query.all()[-1]

    assert rv.first_row_image is not None
    assert rv.first_row_link == 'http://eins.com'
    assert rv.second_row_image is not None
    assert rv.second_row_link == 'http://zwei.com'
    assert rv.third_row_left_image is not None
    assert rv.third_row_left_link == 'http://drei.com'
    assert rv.third_row_right_image is not None
    assert rv.third_row_right_link == 'http://vier.com'

    # check rendered page
    first_row_image = rv.first_row_image
    second_row_image = rv.second_row_image
    third_row_left_image = rv.third_row_left_image
    third_row_right_image = rv.third_row_right_image

    rv = client.get('/')

    assert 'http://eins.com' in rv.data
    assert '{}.jpg'.format(first_row_image) in rv.data
    assert 'http://zwei.com' in rv.data
    assert '{}.jpg'.format(second_row_image) in rv.data
    assert 'http://drei.com' in rv.data
    assert '{}.jpg'.format(third_row_left_image) in rv.data
    assert 'http://vier.com' in rv.data
    assert '{}.jpg'.format(third_row_right_image) in rv.data
Пример #18
0
def test_navbar_profile_links(client, test_user):
    ''' profile link in navbar '''
    rv = client.get('/')
    assert '{} {}'.format(test_user['vorname'],
                          test_user['name']) not in rv.data

    # now login
    login(client, test_user['email'], test_user['password'])

    rv = client.get('/')
    assert '{} {}'.format(test_user['vorname'], test_user['name']) in rv.data
Пример #19
0
def test_login(client, test_user):
    ''' login user'''
    with client as c:
        rv = login(c, test_user['email'], test_user['password'])

        assert rv.status_code == 200
        assert 'Erfolgreich eingeloggt!' in rv.data
        assert flask.session['user'][0]['active'] is True

    # wrong username and password
    rv = login(client, '*****@*****.**', 'bar')
Пример #20
0
def test_valid_users_and_groups(client, test_user, status_code):
    url = '/test/valid-users-and-groups'

    # not logged in
    rv = client.get(url)

    assert rv.status_code == 302

    login(client, test_user['email'], test_user['password'])
    rv = client.get(url)

    assert rv.status_code == status_code
Пример #21
0
def test_access_prayer(client, test_user):
    ''' access to random prayer '''
    # not logged in
    rv = client.get('/prayer')

    assert rv.status_code == 302

    # logged in
    login(client, test_user['email'], test_user['password'])

    rv = client.get('/prayer')

    assert rv.status_code == 200
Пример #22
0
def test_access_group_list(client, test_user):
    ''' access group list '''
    # not logged in
    rv = client.get('/groups')

    assert rv.status_code == 302

    # logged in
    login(client, test_user['email'], test_user['password'])

    rv = client.get('/groups')

    assert rv.status_code == 200
Пример #23
0
def test_access_group(client, test_user):
    ''' logged out cant access group page'''
    # not logged in
    rv = client.get('/group/1')

    assert rv.status_code == 302

    # logged in
    login(client, test_user['email'], test_user['password'])

    rv = client.get('/group/1')

    assert rv.status_code == 200
Пример #24
0
def test_search_view(client, clean_whoosh_index, test_user):
    login(client, test_user['email'], test_user['password'])

    # add whatsup posts
    add_whatsup_post(client, 'erstes subject', 'erster body')
    sleep(1)
    add_whatsup_post(client, 'zweites subject', 'zweiter body')
    sleep(1)
    add_whatsup_post(client, 'drittes subject', 'dritter body')
    sleep(1)

    # add comment
    add_whatsup_comment(client, 1, 'erster kommentar')
    add_whatsup_comment(client, 1, 'zweiter kommentar')

    # search for person
    person = TEST_USER[0]

    rv = search(client, 'marvin')
    soup = BeautifulSoup(rv.data)

    assert 'marvin' in soup.find_all('h1')[0].text
    assert 'Personen' in soup.find_all('h2')[0]

    assert '{} {}'.format(person['vorname'], person['name']).decode(
        'utf-8') in soup.find_all('h4')[0].text

    # search for post
    rv = search(client, 'erster body')
    soup = BeautifulSoup(rv.data)

    assert 'erster body' in soup.find_all('h1')[0].text
    assert 'Posts' in soup.find_all('h2')[0]

    posts = [i.text for i in soup.find_all('div', class_='media-body')]

    for post in posts:
        assert 'erstes subject' in post
        assert 'erster body' in post

    # search for comment
    rv = search(client, 'kommentar')
    soup = BeautifulSoup(rv.data)

    assert 'kommentar' in soup.find_all('h1')[0].text
    assert 'Kommentare' in soup.find_all('h2')[0]

    comments = [i.text for i in soup.find_all('div', class_='media-body')]

    assert 'erster kommentar' in comments[0]
    assert 'zweiter kommentar' in comments[1]
Пример #25
0
def teacher_login():
    form = LoginForm()

    if form.validate_on_submit():
        teacher = Teacher.authenticate(form.username.data, form.password.data)

        if teacher:
            login(teacher)
            flash(f"Welcome {teacher.first_name}!", "good")
            return redirect(f"/teacher/{teacher.id}")

        flash("Invalid username or password", "bad")

    return render_template("login/teacher-login.html", form=form)
Пример #26
0
def guardian_login():
    form = LoginForm()

    if form.validate_on_submit():
        guardian = Guardian.authenticate(form.username.data,
                                         form.password.data)

        if guardian:
            login(guardian)
            flash(f"Welcome {guardian.first_name}!", "good")
            return redirect(f"/guardian/{guardian.id}")

        flash("Invalid username or password", "bad")

    return render_template("login/guardian-login.html", form=form)
Пример #27
0
def test_group_edit_forbidden(client, not_own_group, image):
    ''' user cant edit groups he isnt head of '''
    test_user = TEST_USER[0]

    # login
    login(client, test_user['email'], test_user['password'])

    # edit
    rv = edit_group(client, not_own_group,
                    description='Dies ist ein Test',
                    where='In der Ecclesia',
                    when='Jeden Sonntag',
                    audience='Jeder',
                    image=image)

    assert rv.status_code == 403
Пример #28
0
def download_assets(url, username, password, out_folder='out'):
    print('Logging in')
    browser = helper.login(url, username, password)
    page = browser.get(url)
    title = sanitize_title(page.soup.find('title').text)
    print('Retrieving links')
    asset_links = page.soup.select('body .activityinstance a')
    asset_links_filtered = []
    for link in asset_links:
        if filter_element(link):
            asset_links_filtered.append(link)
        else:
            print('\tWill not get downloaded: "{}"'.format(link.text))

    print(
        '\n(The following assets with icon-names will not be downloaded: "{}")\n'
        .format(', '.join(set(UNUSED_ICONS))))

    folder_name = out_folder + '/' + title
    if not os.path.exists(folder_name):
        os.mkdir(folder_name)
    print('Starting download')
    for asset in asset_links_filtered:
        link = asset.attrs['href']
        print('\tDownloading: "{}"'.format(asset.text))
        download_file(browser,
                      link,
                      folder_name,
                      default_filename=sanitize_title(
                          asset.text.replace('Datei', '')))
Пример #29
0
def login(request):
    try:
        if request.method == 'POST':
            user = request.POST['username']
            pwd = request.POST['pwd']

            '''
            用户登录验证
            '''
            result = db.login(user,pwd)
            if result == 1:
                request.session['user_id']="321443"
                request.session['user'] = user
                weblog.online(request.session['user_id'], "login")
                return HttpResponseRedirect("/webapp/")
            else:
                template = loader.get_template('login.html')
                context ={"msg":"用户名或密码错误!"}
                return HttpResponse(template.render(context, request))

        else:
            template = loader.get_template('login.html')
            return HttpResponse(template.render({}, request))
    except Exception as e:
        pass
Пример #30
0
    def test_login(self):
        account = generate_dummy_account()
        serial_number = register(account)

        logged_in_account = login(account.username, account.password)
        self.assertEqual(account.firstname, logged_in_account.firstname)
        self.assertEqual(account.lastname, logged_in_account.lastname)
Пример #31
0
def test_add_prayer(client, test_user):
    ''' adding prayer '''
    login(client, test_user['email'], test_user['password'])

    prayer = 'Test-Anliegen'
    rv = add_prayer(client, prayer, 'Testname')

    assert rv.status_code == 200
    assert 'Gebetsanliegen abgeschickt!' in rv.data
    assert prayer in rv.data

    # check db entry
    db_entry = models.get_prayer(1)

    assert db_entry.body == prayer
    assert db_entry.active is True
    assert db_entry.name == 'Testname'
Пример #32
0
def login():
    """logs in user"""
    form_data = request.form
    # todo set up flash in base template
    results = helper.login(form_data)
    flash(results[0])
    session['user_name'] = results[1]
    session['user_id'] = results[2]
    return redirect('/')
Пример #33
0
def main():
    profile = "https://www.linkedin.com/in/richardyang98/"
    file_name = 'RY'
    logging.basicConfig(filename='scrape.log',
                        filemode='w',
                        format='%(name)s - %(levelname)s - %(message)s')

    options = Options()
    options.add_argument('--headless')
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
    logging.info("driver setup done")

    login(driver=driver, email=config.email, password=config.password)
    scraper = Profile(driver=driver, profile=profile)
    scraper.scrape()
    write_to_json(file_name=file_name, data=scraper.LinkedIn_Dict)
Пример #34
0
def login():
    """logs in user"""
    form_data = request.form
    # todo set up flash in base template
    results = helper.login(form_data)
    flash(results[0])
    session['user_name'] = results[1]
    session['user_id'] = results[2]
    return redirect('/')
Пример #35
0
def test_group_data(client, test_user):
    ''' group ct data and metadata on group page '''
    with ct_connect.session_scope() as ct_session:
        groups = ct_connect.get_active_groups(ct_session)
        random_group = choice(groups)

        group_ct_data = ct_connect.get_group(ct_session, random_group.id)

        login(client, test_user['email'], test_user['password'])

        rv = client.get('/group/{}'.format(random_group.id))

        assert group_ct_data.bezeichnung.split(
            '-')[-1].encode('utf-8') in rv.data
        if group_ct_data.treffzeit:
            assert group_ct_data.treffzeit.encode('utf-8') in rv.data
        if group_ct_data.treffpunkt:
            assert group_ct_data.treffpunkt.encode('utf-8') in rv.data
Пример #36
0
def test_access_profile(client, test_user):
    ''' access profiles '''
    rv = client.get('/profile/{}'.format(test_user['id']))

    assert rv.status_code == 302

    # now login
    login(client, test_user['email'], test_user['password'])
    rv = client.get('/profile/{}'.format(test_user['id']))

    assert rv.status_code == 200
    assert '<h1>{} {}'.format(test_user['vorname'],
                              test_user['name']) in rv.data
    assert 'avatar.png' in rv.data

    # not exisiting profile
    rv = client.get('/profile/7777')
    assert rv.status_code == 404
Пример #37
0
def test_mail(client, test_user):
    ''' sending mail through webform '''
    recipients = [test_user['email']]
    subject = 'Testsubject'
    body = 'Testbody'

    with MAIL.record_messages() as outbox:
        login(client, test_user['email'], test_user['password'])
        rv = send_mail(client, '/mail/profile/{}'.format(test_user['id']),
                       'Testsubject', 'Testbody')

        assert rv.status_code == 200
        assert 'Email gesendet!' in rv.data
        assert outbox[0].sender == '{} {} <{}>'.format(
            unidecode(test_user['vorname'].decode('utf-8')),
            unidecode(test_user['name'].decode('utf-8')), test_user['email'])
        assert outbox[0].recipients == recipients
        assert outbox[0].subject == subject
        assert body in outbox[0].body
Пример #38
0
def test_whatsup_feed_comments(client, test_user):
    # prepare everything
    login(client, test_user['email'], test_user['password'])
    add_whatsup_post(client, 'subject1', 'body1')
    sleep(1)
    add_whatsup_comment(client, 1, 'comment1')
    sleep(1)
    add_whatsup_comment(client, 1, 'comment2')
    logout(client)

    # logged out
    rv = client.get('/feeds/whatsup-comments.atom')

    # not allowed
    assert rv.status_code == 401

    # logged in
    token = auth.generate_feed_auth(test_user)
    rv = get_whatsup_feed_comments(client, token)

    assert rv.status_code == 200

    # parse feed
    rv = feedparser.parse(rv.data)

    assert rv['feed']['title'] == 'Recent WhatsUp Comments'
    assert rv.entries[0].title == 'Kommentar fuer "subject1" von {} {}'.format(
        unidecode(test_user['vorname'].decode('utf-8')),
        unidecode(test_user['name'].decode('utf-8')))
    assert rv.entries[0].content[0]['value'] == 'comment2'
    assert rv.entries[1].content[0]['value'] == 'comment1'
    assert rv.entries[0].author == '{} {}'.format(
        unidecode(test_user['vorname'].decode('utf-8')),
        unidecode(test_user['name'].decode('utf-8')))
    assert rv.entries[1].author == '{} {}'.format(
        unidecode(test_user['vorname'].decode('utf-8')),
        unidecode(test_user['name'].decode('utf-8')))

    # wrong token
    token = 'foobar'
    rv = get_whatsup_feed_comments(client, token)

    assert rv.status_code == 401
Пример #39
0
def test_group_list(client, test_user):
    ''' group list data '''
    with ct_connect.session_scope() as ct_session:
        group_data = []

        # ct group data
        for group in ct_connect.get_active_groups(ct_session):
            group_data.append(group.bezeichnung.split('-')[-1].encode('utf-8'))
            if group.treffzeit:
                group_data.append(group.treffzeit.encode('utf-8'))
            if group.treffpunkt:
                group_data.append(group.treffpunkt.encode('utf-8'))

        login(client, test_user['email'], test_user['password'])
        rv = client.get('/groups')

        for data in group_data:
            assert data in rv.data

        assert 'avatar-thumb.png' in rv.data
Пример #40
0
def show_guardian_reg():
    form = GuardianRegisterForm()

    if form.validate_on_submit():
        try:
            guardian = Guardian.register(first_name=form.first_name.data,
                                         last_name=form.last_name.data,
                                         relation=form.relation.data,
                                         username=form.username.data,
                                         password=form.password.data)

        except IntegrityError:
            flash("Username already taken", 'bad')
            return render_template('register/teacher-reg.html', form=form)

        login(guardian)

        return redirect(f'/guardian/{guardian.id}')

    return render_template('register/guardian-reg.html', form=form)
Пример #41
0
def test_whatsup_mine(client, test_user):
    # logged out
    rv = client.get('/whatsup/mine')

    assert rv.status_code == 302

    # log in
    login(client, test_user['email'], test_user['password'])
    rv = client.get('/whatsup/mine')

    assert rv.status_code == 200

    # add posts
    add_whatsup_post(client, 'subject1', 'body1')
    sleep(1)
    add_whatsup_post(client, 'subject2', 'body2')

    rv = client.get('/whatsup/mine')
    soup = BeautifulSoup(rv.data)

    rv = soup.find_all('div', class_='panel-body')

    # order of own posts
    assert 'body2' in rv[0].text
    assert 'body1' in rv[1].text

    rv = edit_whatsup_post(client, 2, 'newsubject2', 'newbody2')

    # check flash message
    assert 'Post veraendert!' in rv.data

    soup = BeautifulSoup(rv.data)
    rv = soup.find_all('div', class_='panel-body')

    # changed body
    assert 'newbody2' in rv[0].text

    # changed subject
    rv = soup.find_all('h4')

    assert 'newsubject2' in rv[0].text
Пример #42
0
def test_del_prayer(client):
    '''delete prayer'''
    test_user = TEST_USER[0]
    login(client, test_user['email'], test_user['password'])

    # add prayer and logout
    add_prayer(client, 'Ein Test zum entfernen')
    logout(client)

    # login as other user and try to delete it
    wrong_test_user = TEST_USER[1]
    login(client, wrong_test_user['email'], wrong_test_user['password'])

    rv = del_prayer(client, 1)

    assert rv.status_code == 401

    logout(client)

    # login as right user again
    login(client, test_user['email'], test_user['password'])
    rv = del_prayer(client, 1)

    assert rv.status_code == 200
    assert 'Gebetsanliegen entfernt!' in rv.data

    # try to delete a prayer which is not existing
    rv = del_prayer(client, 20)

    assert rv.status_code == 404
Пример #43
0
def test_edit_prayer(client, test_user):
    ''' editing prayer '''
    login(client, test_user['email'], test_user['password'])

    # add prayer
    prayer = 'Test-Anliegen'
    name = 'Testname'
    rv = add_prayer(client, prayer)

    prayer = 'Neues Anliegen'
    rv = edit_prayer(client, 1, prayer, name=name)

    assert rv.status_code == 200
    assert 'Gebetsanliegen veraendert!' in rv.data
    assert prayer in rv.data

    # check db entry
    db_entry = models.get_prayer(1)

    assert db_entry.body == prayer
    assert db_entry.active is False
    assert db_entry.name == name
Пример #44
0
def login():
    req_data = request.get_json()

    # Get items from the helper
    res_data = helper.login(req_data)

    # Return 404 if item not found
    if 'error' in res_data:
        response = Response(json.dumps(res_data), status=400, mimetype='application/json')
        response.headers["Access-Control-Allow-Origin"] = "*"
        return response

    # Return response
    response = Response(json.dumps(res_data), status=200, mimetype='application/json')
    response.headers["Access-Control-Allow-Origin"] = "*"
    return response
Пример #45
0
def log_in():
    username = input("Enter your username: "******"Enter your password: "******"")
        print("Invalid Username or Password")
        print("")
        log_in()
        return

    print("")
    print("Hi, " + account.firstname + "!")
    print("")

    show_account_options(account)
Пример #46
0
def test_driver_status_change(driver):
    driver_email = driver.get('email')
    driver_password = constants.PASSWORD

    json_response = login("Driver", driver_email, driver_password)
    assert json_response.get('status') == "SUCCESS"
    assert json_response.get('data').get('status') == 'Away-Off'
    if json_response.get('data').get('status') == 'Away-Off':
        print('Driver ==> {} <== status confirmed Away-Off after first login'.
              format(driver_email))

    driver_token = json_response.get('data').get('api_token')
    ''' take care here you are calling change status twice because single hit causes error '''
    json_response = update_status(driver_token, 'Available')
    json_response = update_status(driver_token, 'Available')
    assert json_response.get('status') == "SUCCESS"
    if json_response.get('status') == "SUCCESS":
        print(
            'Driver ==> {} <== status has been successfully changed into Available'
            .format(driver_email))
Пример #47
0
def login_user():
    #Get item from the POST body
    #    print(request.data)
    req_data = request.form
    item = req_data['username']
    password = req_data['password']

    #Add item to the list
    res_data = helper.login(item, password)

    #Return error if item not added
    if res_data is None:
        response = Response("{'error': 'Item not added - '}" + item,
                            status=400,
                            mimetype='application/json')
        return response

    #Return response
    response = Response(json.dumps(res_data), mimetype='application/json')

    return response
Пример #48
0
def download_assets(url, username, password, out_folder='out'):
    print('Logging in')
    browser = helper.login(url, username, password)
    page = browser.get(url)
    title = sanitize_title(page.soup.find('title').text)
    print('Retrieving links')
    asset_links = page.soup.select('body .activityinstance a')
    asset_links_filtered = []
    for link in asset_links:
        if filter_element(link):
            asset_links_filtered.append(link)
        else:
            print('\tWill not get downloaded: "{}"'.format(link.text))

    print('\n(The following assets with icon-names will not be downloaded: "{}")\n'.format(', '.join(set(UNUSED_ICONS))))

    folder_name = out_folder + '/' + title
    if not os.path.exists(folder_name):
        os.mkdir(folder_name)
    print('Starting download')
    for asset in asset_links_filtered:
        link = asset.attrs['href']
        print('\tDownloading: "{}"'.format(asset.text))
        download_file(browser, link, folder_name, default_filename = sanitize_title(asset.text.replace('Datei', '')))
Пример #49
0
def setup_connection(url, user, password):
    print('Logging in')
    browser = helper.login(url, user, password)
    return browser
Пример #50
0
def test_login_Well():

    email = "*****@*****.**"
    password = "******"

    assert json.loads(json.dumps(helper.login(email, password)))["error"] == 0
Пример #51
0
 def setUp(self):
     self.browser = webdriver.Chrome()
     self.browser.get(data.Details.detailsURL)
     helper.login(self)
Пример #52
0
        try:
            direct_inbox = driver.get(constants.direct_inbox_url)
            print("start direct for " + following_data[num_array] + " No." +
                  str(num_array))
            driver.implicitly_wait(20)
            write_id = driver.find_element_by_xpath(constants.query_box)
            write_id.send_keys(following_data[num_array])
            num_array += 1
            sleep(2)
            driver.find_element_by_xpath(constants.first_id_in_qb).click()
            driver.find_element_by_xpath(constants.next_to_direct).click()
            driver.implicitly_wait(20)
            sleep(1)
            write_massage = driver.find_element_by_tag_name("textarea")
            sleep(1)
            write_massage.send_keys(constants.massage)
            sleep(1)
            write_massage.send_keys(Keys.ENTER)
            sleep(1)
        except:
            print("Message not sent")
            if num_array > len(following_data):
                break


helper.login()
helper.notNowButton()
getFileText(file_path=file_path)
sendDirect(driver=helper.driver, array=following_data)
helper.closeDriver()
Пример #53
0
 def login(self):
     self.session = helper.login(self.config["user"],
                                 self.config["password"],
                                 self.config["cookie_file"])
Пример #54
0
def test_login_Bad2():

    email = "*****@*****.**"
    password = "******"

    assert json.loads(json.dumps(helper.login(email, password)))["error"] == 1
def test_new_category_non_admin():
    login(USER_EMAIL, USER_PASSWORD, CATEGORY_SUCCESS_MSG)
    category_actions()
    new_category(TITLE, DESC, CATEGORY_FAIL_MSG)
Пример #56
0
def test_login_with_different_credentials(email, password,
                                          expected_banner_txt):
    login(email, password, expected_banner_txt)
Пример #57
0
def test_login_Bad():

    email = "*****@*****.**"
    password = "******"

    assert json.loads(json.dumps(helper.login(email, password)))["error"] == 1
Пример #58
0
    soupa=bs(htmla)
    lst=[h for h in soupa.findAll('a')]
    link=[each.get('href') for each in lst]
    for x in link :
        try:
            u = urllib2.urlopen(baseurl+"/"+x) #Testing if link is valid and downloadable
        except:
            link.remove(x)
    
    path_folder=createfold(list_subject[1][int(select)]+'-'+list_subject[2][int(select)],fac)
    for x in range(0,len(link)):
        try:
            url = link[x]
            file_nam = lst[x].text
            ##print file_nam
            down(url,file_nam,path_folder)
        except Exception,e:
            print e
            pass            
        print '*'*79
        
if __name__=="__main__":
    global br
    br=login()
    ask()
    home()
    timetable()
    group()
    Employ()
    while True:
        crs()
Пример #59
0
 def post(self, request):
     #        request.POST -:
     #         <QueryDict: {u'username': [u'*****@*****.**'],
     #         u'csrfmiddlewaretoken': [u'SM696oXH1A9cep0zp21RZgaomQa2eP6cJyf8fQZAnMc81JIpVVZW4Wjq7YyI9VT7'],
     #         u'password': [u'shivam'], u'next': [u'']}>
     return login(request)
Пример #60
0
 def testLoadPageWhileLoggedIn(self):
     self.browser.get(data.Register.loginURL)
     helper.login(self)
     self.browser.get(data.Register.registerURL)
     response = self.browser.current_url
     self.assertFalse(response == data.Register.registerURL)