def test_multiple_applications_on_applicationSeason_should_fail(db_session):
    season = createBasicSeason(db_session)
    user = createUser(db_session)
    application1 = Application(needs="needs",
                               user=user,
                               partnerUsername="******",
                               comments="comments",
                               preferredRoom="pref",
                               seatRollover=True,
                               rank=Rank.WRITING_MASTER,
                               status=ApplicationStatus.SUBMITTED,
                               applicationSeason=season)
    db_session.add(application1)
    db_session.commit()
    with raises(IntegrityError):
        application2 = Application(needs="needs",
                                   user=user,
                                   partnerUsername="******",
                                   comments="comments",
                                   preferredRoom="pref",
                                   seatRollover=True,
                                   rank=Rank.WRITING_MASTER,
                                   status=ApplicationStatus.SUBMITTED,
                                   applicationSeason=season)
        db_session.add(application2)
        db_session.commit()
예제 #2
0
def apply(job_id, student_id):
    data = request.json
    application = Application(
        job_id=job_id,
        student_id=student_id,
    )
    return save_model(application)
    def get_application_by_name(self,pkgname):
        #print "get_application_by_name:", pkgname
        if pkgname == "brasero":
            return None
        if not pkgname:
            return None
        if self.cat_list is None:
            return None
        #
        # print("self.cat_list111",self.cat_list)
        for (catname, cat) in list(self.cat_list.items()): #get app in cat which init in uksc startup
            app = cat.get_application_byname(pkgname)
            if app is not None and app.package is not None:
                return app

        if(Globals.ADVANCED_SEARCH):
            pkg = self.get_package_by_name(pkgname)
            if pkg is not None and pkg.candidate is not None: #get app from cache and add it to cat  when app not in cat
                displayname_cn = pkgname
                app = Application(pkgname, displayname_cn, cat, self.apt_cache)
                app.orig_name = app.name
                app.orig_summary = app.summary
                app.orig_description = app.description
                app.displayname = app.name
                app.summary = app.summary
                app.description = app.description
                app.from_ukscdb = False
                # if("Accessories" in self.cat_list.keys()):
                #     cat = self.cat_list["Accessories"]
                #     cat.apps[pkgname] = app
                return app

        return None
예제 #4
0
    def create(self, data: dict, user: User) -> Application:
        try:
            application = Application()
            application.real_name = data["real_name"]
            application.model = data["model"]
            application.description = data["description"]
            application.details = data["details"] if "details" in data.keys(
            ) else None
            self.generate_name(application)
            application.created_at = datetime.now()
            application.created_by = user.id
            application.updated_at = datetime.now()
            application.updated_by = user.id
            application.activate = True
            application.add_user(user.id)
            self._repository.create(application)
            self._dbcontext.commit()
            self._logger.info(
                f"{user.email} created new application {application.name}")

            return application
        except Exception as e:
            self._logger.error(
                f"Error ocurred on create new application {str(e)}")
            self._dbcontext.rollback()

            raise e
def test_application_connect_to_seat(db_session):
    season = createBasicSeason(db_session)
    room = Room("D1", "kek")
    db_session.add(room)
    seat = Seat(name="D1", room=room, info="")
    db_session.add(seat)
    user = User(username="******",
                sub="sub",
                email="email",
                fullname="schnep scmep")
    db_session.add(user)
    application = Application(needs="",
                              comments="",
                              user=user,
                              partnerUsername="",
                              preferredRoom="d1",
                              seatRollover=True,
                              rank=Rank.WRITING_MASTER,
                              status=ApplicationStatus.SUBMITTED,
                              applicationSeason=season)
    db_session.add(application)
    db_session.commit()
    application.room_id = seat.room_id
    application.seat_id = seat.id
    assert application.seat is seat
    assert seat.application is application
예제 #6
0
def app(request, browser_type, base_url):
    if browser_type == "firefox":
        driver = webdriver.Firefox(GECKODRIVER)
    elif browser_type == "chrome":
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument('--window-size=1920,1080')
        chrome_options.add_argument('--enable-logging')
        chrome_options.add_argument('--v=1')
        chrome_options.add_argument('--ignore-certificate-errors')
        chrome_options.add_argument('--disable-extensions')
        chrome_options.add_argument('--no-sandbox')
        chrome_options.add_argument('--enable-popup-blocking')
        chrome_options.add_argument('--disable-notifications')
        chrome_options.add_argument('--headless')
        chrome_options.add_argument('--use-gl=osmesa')
        chrome_options.add_argument('--disable-dev-shm-usage')
        chrome_options.add_argument('--disable-infobars')
        driver = webdriver.Chrome(CHROMEDRIVER, options=chrome_options)

    def fin():

        screenshot("END TEST", driver)
        driver.get(base_url)
        driver.quit()

    request.addfinalizer(fin)
    return Application(driver, base_url)
def test_cascading_seat(db_session):
    season = createBasicSeason(db_session)
    user = User(username="******",
                sub="sub",
                email="email",
                fullname="Man Man McMan")
    application = Application(needs="needs",
                              user=user,
                              partnerUsername="******",
                              comments="comments",
                              preferredRoom="pref",
                              seatRollover=True,
                              rank=Rank.WRITING_MASTER,
                              status=ApplicationStatus.SUBMITTED,
                              applicationSeason=season)
    room = Room(name="room", info="info")
    seat = Seat(name="d1", room=room, info="info")
    db_session.add(user)
    db_session.add(application)
    db_session.add(room)
    db_session.add(seat)
    db_session.commit()
    application.room_id = seat.room_id
    application.seat_id = seat.id
    assert application.seat is seat

    db_session.delete(application)
    db_session.commit()
    db_session.expire_all()

    dbseat = db_session.query(Seat).first()
    print(user.application)
    assert dbseat == seat
    assert dbseat.application is None
    assert user.application is None
예제 #8
0
 def test_update_application_with_partner(self):
     season = createBasicSeason(db.session)
     headers = {
         'Authorization': self.token,
         'AccessToken': self.accessToken,
         'Content-type': 'application/json'
     }
     testuser1 = User(username="******",
                      sub="sub",
                      email="email",
                      fullname="Franky Frank")
     testuser2 = User(username="******",
                      sub="uuid",
                      email="email",
                      fullname="Schmemail")
     db.session.add(testuser1)
     db.session.add(testuser2)
     db.session.commit()
     createUser(db.session)
     testApplication1 = Application(ApplicationStatus.SUBMITTED,
                                    "Fanta is better than solo",
                                    user=testuser1,
                                    partnerUsername=testuser2.username,
                                    preferredRoom="d1",
                                    seatRollover=True,
                                    applicationSeason=season,
                                    comments="Not Pepsi, but Pepsi Max")
     testApplication2 = Application(ApplicationStatus.SUBMITTED,
                                    "Fanta is better than solo",
                                    user=testuser2,
                                    partnerUsername=testuser1.username,
                                    preferredRoom="d1",
                                    seatRollover=True,
                                    applicationSeason=season,
                                    comments="Not Pepsi, but Pepsi Max")
     testApplication1.partnerApplication = testApplication2
     testApplication2.partnerApplication = testApplication1
     db.session.add(testApplication1)
     db.session.add(testApplication2)
     db.session.commit()
     assert testApplication1.partnerApplication is testApplication2
     assert testApplication2.partnerApplication is testApplication1
     self.app.test_client().put('http://localhost:5000/application/1',
                                headers=headers,
                                data=json.dumps(dict(partnerUsername="", )))
     assert testApplication1.partnerApplication is None
     assert testApplication2.partnerApplication is None
예제 #9
0
 def test_get_all_applications(self):
     season = createBasicSeason(db.session)
     headers = {
         'Authorization': self.token,
         'AccessToken': self.accessToken
     }
     testuser1 = User(username="******",
                      sub="sub",
                      email="email",
                      fullname="Franky Frank")
     testuser2 = User(username="******",
                      sub="uuid",
                      email="email",
                      fullname="Schmemail")
     db.session.add(testuser1)
     db.session.add(testuser2)
     db.session.commit()
     createUser(db.session)
     testApplication1 = Application(ApplicationStatus.SUBMITTED,
                                    "Fanta is better than solo",
                                    user=testuser1,
                                    partnerUsername="******",
                                    preferredRoom="d1",
                                    seatRollover=True,
                                    applicationSeason=season,
                                    comments="Not Pepsi, but Pepsi Max")
     testApplication2 = Application(ApplicationStatus.SUBMITTED,
                                    "Fanta is better than solo",
                                    user=testuser2,
                                    partnerUsername="******",
                                    preferredRoom="d1",
                                    seatRollover=True,
                                    applicationSeason=season,
                                    comments="Not Pepsi, but Pepsi Max")
     db.session.add(testApplication1)
     db.session.add(testApplication2)
     db.session.commit()
     allApplications = self.app.test_client().get(
         'http://localhost:5000/application/all', headers=headers)
     assert allApplications.status == "200 OK"
     assert allApplications.data == jsonify(
         [testApplication1.to_json(),
          testApplication2.to_json()]).data
예제 #10
0
 def test_update_application(self):
     season = createBasicSeason(db.session)
     testuser = createUser(db.session)
     testApplication = Application(ApplicationStatus.SUBMITTED,
                                   "Fanta is better than solo",
                                   user=testuser,
                                   partnerUsername="******",
                                   preferredRoom="d1",
                                   seatRollover=True,
                                   applicationSeason=season,
                                   comments="Not Pepsi, but Pepsi Max")
     db.session.add(testApplication)
     db.session.commit()
     mimetype = 'application/json'
     headers = {
         'Content-Type': mimetype,
         'Accept': mimetype,
         'Authorization': self.token,
         'AccessToken': self.accessToken
     }
     response = self.app.test_client().put(
         'http://localhost:5000/application/1',
         headers=headers,
         data=json.dumps(
             dict(
                 username=testuser.username,
                 needs="Pepsi is better than coke",
                 comments="Not Pepsi, but Pepsi Max",
                 partnerUsername="",
                 preferredRoom="d1",
                 seatRollover=True,
                 aRandomfield=True,
             )))
     expectedResponse = make_response(
         jsonify(
             needs="Pepsi is better than coke",
             comments="Not Pepsi, but Pepsi Max",
             id=1,
             status="SUBMITTED",
             user={
                 "id": 1,
                 "username": testuser.username,
                 "email": testuser.email,
                 "fullname": testuser.fullname
             },
             partnerApplication={},
             rank="OTHER",
             seat=None,
             preferredRoom="d1",
             seatRollover=True,
         ), 200)
     assert expectedResponse.status == response.status
     assert json.loads(expectedResponse.data) == json.loads(response.data)
     assert testApplication.to_json() == json.loads(response.data)
def test_cascading_partnerApplication(db_session):
    season = createBasicSeason(db_session)
    user1 = User(username="******",
                 sub="sub",
                 email="email",
                 fullname="Solvæng")
    application1 = Application(needs="needs",
                               user=user1,
                               partnerUsername="******",
                               comments="comments",
                               preferredRoom="pref",
                               seatRollover=True,
                               rank=Rank.WRITING_MASTER,
                               status=ApplicationStatus.SUBMITTED,
                               applicationSeason=season)
    user2 = User(username="******",
                 sub="sub2",
                 email="email2",
                 fullname="Sålvong")
    application2 = Application(needs="needs",
                               user=user2,
                               partnerUsername="******",
                               comments="comments",
                               preferredRoom="pref",
                               seatRollover=True,
                               rank=Rank.WRITING_MASTER,
                               status=ApplicationStatus.SUBMITTED,
                               applicationSeason=season)
    db_session.add(user1)
    db_session.add(user2)
    db_session.add(application1)
    db_session.add(application2)
    application1.partnerApplication = application2
    application2.partnerApplication = application1
    db_session.commit()
    db_session.expire_all()
    db_session.delete(application1)
    db_session.commit()
    dbapplication = db_session.query(Application).first()
    assert dbapplication == application2
    assert dbapplication.partnerApplication is None
예제 #12
0
def registerApplicationMock(comments, user, needs, partnerUsername, preferredRoom, seatRollover, rank):
    return Application(
        status=ApplicationStatus.SUBMITTED,
        comments=comments,
        needs=needs,
        user=User(username="******", sub="sub", email="email", fullname="Schnep Schmep"),
        partnerUsername=partnerUsername,
        preferredRoom="d1",
        seatRollover=True,
        rank=rank,
        applicationSeason=createBasicSeason()
    ).to_json(), 201
def test_users_connect_each_other(db_session):
    season = createBasicSeason(db_session)
    testuser1 = User(username="******",
                     sub="sub",
                     email="email",
                     fullname="Asbjørn ELEVG baby")
    testuser2 = User(username="******",
                     sub="subs",
                     email="emails",
                     fullname="Asbjørns ELEVGs babys")
    db_session.add(testuser1)
    db_session.add(testuser2)
    application2 = Application(needs="",
                               comments="",
                               user=testuser2,
                               partnerUsername=testuser1.username,
                               preferredRoom="d1",
                               seatRollover=True,
                               rank=Rank.WRITING_MASTER,
                               status=ApplicationStatus.SUBMITTED,
                               applicationSeason=season)
    application1 = Application(needs="",
                               comments="",
                               user=testuser1,
                               partnerUsername=testuser2.username,
                               preferredRoom="d1",
                               seatRollover=True,
                               rank=Rank.WRITING_MASTER,
                               status=ApplicationStatus.SUBMITTED,
                               applicationSeason=season)
    application1.partnerApplication = application2
    application2.partnerApplication = application1
    db_session.add(application1)
    db_session.add(application2)
    db_session.commit()
    dbapp1 = db_session.query(Application).filter_by(user=testuser1).one()
    dbapp2 = db_session.query(Application).filter_by(user=testuser2).one()
    assert dbapp1.partnerApplication == application2
    assert dbapp2.partnerApplication == application1
    def get_category_apps_from_db(self,cat,catdir=""):
        lists = self.appmgr.db.query_category_apps(cat)
        apps = {}
        for item in lists:
            #pkgname = UnicodeToAscii(item[0])
            pkgname = item[0]
            displayname_cn = item[1]
            if pkgname == "brasero":
                continue
            if pkgname in list(Globals.ALL_APPS.keys()):
                apps[pkgname] = Globals.ALL_APPS[pkgname]
            else:
                app = Application(pkgname,displayname_cn, cat, self.apt_cache)
                if app.package and app.package.candidate:
                    #if there has special information in db, get them
                    #get_category_apps_from_db: 0 0
                    #display_name, summary, description, rating_average,rating_total,review_total,download_total
                    app.from_ukscdb = True
                    app.orig_name = app.name#zx2015.01.26
                    app.orig_summary = app.summary
                    app.orig_description = app.description

                    appinfo = self.appmgr.db.query_application(pkgname)

                    app.displayname = appinfo[0]
                    app.summary = appinfo[1]
                    app.description = appinfo[2]
                    rating_average = appinfo[3]
                    rating_total = appinfo[4]
                    review_total = appinfo[5]
                    app.downloadcount = appinfo[7]
                    # rank = appinfo[6]

                    # #                if CheckChineseWords(app.summary) is False and CheckChineseWordsForUnicode(summary) is True:
                    # if summary is not None and summary != 'None':
                    #     app.summary = summary
                    # #                if CheckChineseWords(app.description) is False and CheckChineseWordsForUnicode(description) is True:
                    # if description is not None and summary != 'None':
                    #     app.description = description
                    if rating_average is not None:
                        app.ratings_average = float(rating_average)
                    if rating_total is not None:
                        app.ratings_total = int(rating_total)
                    if review_total is not None:
                        app.review_total = int(review_total)
                        # if rank is not None:
                        #     app.rank = int(rank)
                    apps[pkgname] = app

                    Globals.ALL_APPS[pkgname] = app #make sure there is only one app with the same pkgname even it may belongs to other category
        return apps
 def download_category_apps(self,cat,catdir=""):
     #load the apps from category file
     count = 0
     sumapp = 0
     apps = {}
     file = open(catdir + cat, 'r')
     for line in file:
         pkgname = line.strip('\n')
         if pkgname == "brasero":
             continue
         app = Application(pkgname,cat, self.apt_cache)
         if app.package:
             apps[pkgname] = app
             sumapp = sumapp + 1
         else:
             count = count + 1
     return apps
예제 #16
0
def add_application():
    attributes = request.json
    application = Application(**attributes)
    try:
        session.add(application)
        session.commit()
        response = jsonify({
            "code": 1,
            "message": "Successfully added application"
        })
        return make_response(response, 201)
    except:
        session.rollback()
        response = jsonify({
            "code": -1,
            "message": "Application already exists"
        })
        return make_response(response, 401)
예제 #17
0
def createApplication(db_session=None):
    season = createBasicSeason(db_session)
    user = createUser(db_session)
    application = Application(
        needs="needs",
        comments="comments",
        user=user,
        partnerUsername="******",
        preferredRoom="d1",
        seatRollover=True,
        status=ApplicationStatus.SUBMITTED,
        rank=Rank.WRITING_MASTER,
        applicationSeason=season,
    )
    if (db_session):
        db_session.add(application)
        db_session.commit()
    return application
예제 #18
0
    def test_remove_all_students_from_seat(self):
        room, seat = createSeatAndRoom()
        room2, seat2 = createSeatAndRoom()
        application1 = createApplication(db.session)
        user = User(username="******",
                    sub="sub",
                    email="email2",
                    fullname="fullname2")
        application2 = Application(
            ApplicationStatus.APPROVED,
            "Fanta is better than solo",
            user=user,
            partnerUsername="******",
            preferredRoom="d1",
            seatRollover=True,
            applicationSeason=application1.applicationSeason,
            comments="Not Pepsi, but Pepsi Max")
        db.session.add(user)
        db.session.add(application2)
        seat.application = application1
        seat2.application = application2
        db.session.add(seat)
        db.session.add(seat2)
        db.session.commit()

        mimetype = 'application/json'
        headers = {
            'Content-Type': mimetype,
            'Accept': mimetype,
            'AccessToken': self.accessToken
        }
        seatId = 1
        response = self.app.test_client().post(
            "http://localhost:5000/seat/removeAllStudents",
            headers=headers,
            data=json.dumps(seatId))

        assert "200 OK" == response.status
        assert seat.application is None
        assert seat2.application is None
        assert application1.seat is None
        assert application2.seat is None
        assert application1.status is ApplicationStatus.SUBMITTED
        assert application2.status is ApplicationStatus.SUBMITTED
def test_proper_user_serialization(db_session):
    season = createBasicSeason(db_session)
    testuser1 = User(username="******",
                     sub="sub",
                     email="email",
                     fullname="Asbjørn ELEVG baby")
    db_session.add(testuser1)
    application = Application(needs="",
                              comments="",
                              user=testuser1,
                              partnerUsername=None,
                              preferredRoom="d1",
                              seatRollover=True,
                              rank=Rank.WRITING_MASTER,
                              status=ApplicationStatus.SUBMITTED,
                              applicationSeason=season)
    db_session.add(application)
    db_session.commit()
    dbapplication = db_session.query(Application).first()
    assert testuser1.to_json() == dbapplication.to_json()['user']
def test_application_connect_to_season(db_session):
    season = createBasicSeason(db_session)
    user = User(username="******",
                sub="sub",
                email="email",
                fullname="schnep scmep")
    db_session.add(user)
    application = Application(needs="",
                              comments="",
                              user=user,
                              partnerUsername="",
                              preferredRoom="d1",
                              seatRollover=True,
                              rank=Rank.WRITING_MASTER,
                              status=ApplicationStatus.SUBMITTED,
                              applicationSeason=season)
    db_session.add(season)
    db_session.add(application)
    db_session.commit()
    dbseason = db_session.query(ApplicationSeason).first()
    assert application.applicationSeason == season
    assert dbseason.applications == [application]
def test_cascading_user(db_session):
    season = createBasicSeason(db_session)
    user = User(username="******", sub="sub", email="email", fullname="Dudeman")
    application = Application(needs="needs",
                              user=user,
                              partnerUsername="******",
                              comments="comments",
                              preferredRoom="pref",
                              seatRollover=True,
                              rank=Rank.WRITING_MASTER,
                              status=ApplicationStatus.SUBMITTED,
                              applicationSeason=season)

    db_session.add(user)
    db_session.add(application)
    db_session.commit()
    db_session.expire_all()
    db_session.delete(application)
    db_session.commit()
    dbuser = db_session.query(User).first()
    assert dbuser == user
    assert user.application is None
예제 #22
0
def registerApplication(comments, needs, user, partnerUsername, seatRollover,
                        preferredRoom, rank):
    try:
        season = getCurrentOrNext()
        application = Application(
            status=ApplicationStatus.SUBMITTED,
            needs=needs,
            user=user,
            partnerUsername=partnerUsername,
            comments=comments,
            seatRollover=seatRollover,
            preferredRoom=preferredRoom,
            rank=rank,
            applicationSeason=season,
        )
        db.session.add(application)
        db.session.commit()
        connectApplication(application)
        return application.to_json(), 201
    except SQLAlchemyError as err:
        print(err)
        return "", 400
예제 #23
0
    def get_test_case(cls):
        jobs = [
            # Should be filled
            Job(
                id  = ObjectId(),
                employer_id = ObjectId(),
                position    = "Software Engineer",
                description = "We're hiring software engineers!",
                location    = "Mountain View, CA",
                openings    = 1,
            ),
            # Should be partially filled
            Job(
                id  = ObjectId(),
                employer_id = ObjectId(),
                position    = "Software Engineer",
                description = "We're hiring software engineers!",
                location    = "Mountain View, CA",
                openings    = 3,
            ),
            # Should be unmatched
            Job(
                id  = ObjectId(),
                employer_id = ObjectId(),
                position    = "Test Engineer",
                description = "We're hiring software engineers!",
                location    = "Mountain View, CA",
                openings    = 1,
            )
        ]

        students = [
            # This student should get job[0]
            Student(
                id       = ObjectId(),
                name     = "John GetsMyFirstPick",
                email    = "*****@*****.**",
                password = "******",
            ),
            # This student should get job[1]
            Student(
                id       = ObjectId(),
                name     = "John GetsMySecondPick",
                email    = "*****@*****.**",
                password = "******",
            ),
            # This student should get job[1]
            Student(
                id       = ObjectId(),
                name     = "John GetsAnotherJob",
                email    = "*****@*****.**",
                password = "******",
            ),
            # This student does not get matched
            Student(
                id       = ObjectId(),
                name     = "John DoesntGetAJob",
                email    = "*****@*****.**",
                password = "******",
            )
        ]

        apps = [
            # student[0]'s applications
            # app to job [0]
            Application(
                id               = ObjectId(),
                job_id           = jobs[0].id,
                student_id       = students[0].id,
                student_ranking  = 1,
                employer_ranking = 1,
            ),
            # app to job[1]
            Application(
                id               = ObjectId(),
                job_id           = jobs[1].id,
                student_id       = students[0].id,
                student_ranking  = 2,
                employer_ranking = 2,
            ),
            # app to job [2]
            Application(
                id               = ObjectId(),
                job_id           = jobs[2].id,
                student_id       = students[0].id,
                student_ranking  = 3,
                employer_ranking = 2,
            ),
            # student[1]'s applications
            # app to job [0]
            # app to job [2]
            Application(
                id               = ObjectId(),
                job_id           = jobs[2].id,
                student_id       = students[1].id,
                student_ranking  = 3,
                employer_ranking = 1,
            ),
            Application(
                id               = ObjectId(),
                job_id           = jobs[0].id,
                student_id       = students[1].id,
                student_ranking  = 1,
                employer_ranking = 2,
            ),
            # app to job[1]
            Application(
                id               = ObjectId(),
                job_id           = jobs[1].id,
                student_id       = students[1].id,
                student_ranking  = 2,
                employer_ranking = 3,
            ),
            # student[2]'s applications
            # app to job [0]
            Application(
                id               = ObjectId(),
                job_id           = jobs[0].id,
                student_id       = students[2].id,
                student_ranking  = 2,
                employer_ranking = 3,
            ),
            # app to job[1]
            Application(
                id               = ObjectId(),
                job_id           = jobs[1].id,
                student_id       = students[2].id,
                student_ranking  = 1,
                employer_ranking = 4,
            ),
            # app to job [2]
            Application(
                id               = ObjectId(),
                job_id           = jobs[2].id,
                student_id       = students[2].id,
                student_ranking  = 3,
                employer_ranking = None,
            ),
            # student[3]'s applications
            # app to job[1]
            Application(
                id               = ObjectId(),
                job_id           = jobs[1].id,
                student_id       = students[2].id,
                student_ranking  = None,
                employer_ranking = 1,
            ),
            # app to job [0]
            Application(
                id               = ObjectId(),
                job_id           = jobs[0].id,
                student_id       = students[2].id,
                student_ranking  = 2,
                employer_ranking = 4,
            ),
            # app to job [2]
            Application(
                id               = ObjectId(),
                job_id           = jobs[2].id,
                student_id       = students[2].id,
                student_ranking  = 1,
                employer_ranking = None,
            ),
        ]
        # Sort apps by employer ranking (as required by function spec)
        apps = sorted(apps, key = lambda a: a.employer_ranking)

        return jobs, students, apps
예제 #24
0
from database import db
from models.application import Application
from models.tag import Tag
from preprocessors.tag_preprocessor import add_tag
from main import app
from gp_parser import gp_parse

app.app_context().push()

app_seed1 = Application(
    name="Adobe Photoshop Express: редактор фото и коллажей",
    image_url=
    'https://play-lh.googleusercontent.com/kSYT6j4SVHdvA6FcP_erR5wBfPpAh_AVbxC5aihMe7OztbFV_iDAQOLdPN3fVyXmsqU=s180-rw',
    description=
    '<p>УЛУЧШЕНИЕ И СТИЛИЗАЦИЯ ФОТОГРАФИЙ.</p><p>Реализуйте свой потенциал с Photoshop Express, быстрым и простым редактором фотографий, которым пользуются миллионы творческих людей. Редактируйте фотографии, как профессионал, с помощью этой удобной многофункциональной цифровой студии на мобильном устройстве.</p><p></p><p>Photoshop Express предоставляет полный спектр разнообразных инструментов и эффектов. Используйте рамки и текст, улучшайте цвета и образы, создавайте коллажи, быстро исправляйте и улучшайте ваши достойные внимания моменты. И все это бесплатно!</p><p></p><p></p><p>КОРРЕКЦИЯ ПЕРСПЕКТИВЫ</p><p>• Исправляйте искривленные изображения автоматически.</p><p>• Исправьте искаженный угол съемки с помощью инструмента Трансформирование.</p><p></p><p>УДАЛЕНИЕ ШУМА</p><p>• Устраните зернистость или уменьшите цветовой шум для получения кристально чистого изображения.</p><p>• Повысьте резкость деталей для создания лучших изображений.</p><p></p><p>РАЗМЫТИЕ</p><p>• Привлеките внимание к определенным элементам и смешайте фон с помощью радиального размытия.</p><p>• Улучшайте изображения и создавайте эффект движения с помощью функций полного размытия.</p><p></p><p>РАМКИ И ТЕКСТ</p><p>• Добавьте индивидуальности стикерам, мемам и подписям.</p><p>• Измените стиль сообщений, используя множество шрифтов, цветов и настроек непрозрачности.</p><p>• Подберите рамку под цвет фото или свой вкус.</p><p>• Настройте размещение текста с помощью панорамирования, масштабирования и поворота.</p><p>• Добавьте водяные знаки, пользовательский текст или логотипы.</p><p></p><p>ФИЛЬТРЫ И ЭФФЕКТЫ</p><p>• Придайте эмоциям выразительности с помощью различных фильтров: «Монохромный», «Портрет», «Природа» и «Двухцветный».</p><p>• Поменяйте цветовую температуру, красочность и другие цветовые эффекты с помощью удобного ползунка.</p><p>• Удалите туман или дымку, чтобы создать насыщенный деталями пейзаж.</p><p></p><p>ПОТРЯСАЮЩИЕ КОЛЛАЖИ</p><p>• Создавайте профессиональные коллажи, добавляя готовые макеты сетки.</p><p></p><p>• Изменяйте толщину и цвет границ.</p><p>• Печатайте фотографии непосредственно из приложения.</p><p></p><p>ТОЧЕЧНОЕ ВОССТАНОВЛЕНИЕ</p><p>• Уберите дефекты и пятна с фотографий</p><p></p><p>БЫСТРЫЕ ИСПРАВЛЕНИЯ</p><p>• Кадрирование, выпрямление, вращение и зеркальное отражение фотографий.</p><p>• Автоматическое исправление контраста, экспозиции и баланса белого одним касанием.</p><p>• Устранение эффекта красных и засвеченных глаз.</p><p></p><p>ИМПОРТ И ЭКСПОРТ ФОТОГРАФИЙ</p><p>• Загружайте изображения со своего мобильного устройства, из Adobe Creative Cloud, Dropbox, Facebook и Google Фото.</p><p>• Поддержка, импорт и редактирование форматов RAW и TIFF.</p><p>• Изменение размера и настройка качества изображений JPEG перед сохранением.</p><p>• Делитесь своими фотографиями в Instagram, Facebook, Twitter, Flickr, WhatsApp и т. д. одним касанием.</p><p></p><p>Программа Photoshop Express создана компанией Adobe — разработчиком семейства Photoshop.</p><p></p><p>Условия использования Adobe:</p><p>Предназначено для лиц в возрасте 13 лет и старше. Требует принятия условий и положений политики конфиденциальности Adobe.</p><p>http://www.adobe.com/go/terms_linkfree_ru</p><p>http://www.adobe.com/go/privacy_policy_linkfree_ru</p><p></p>',
    appstore_link=
    'https://apps.apple.com/ru/app/photoshop-express-photo-editor/id331975235',
    gp_link='https://play.google.com/store/apps/details?id=com.adobe.psmobile',
    msstore_link=
    'https://www.microsoft.com/ru-ru/p/adobe-photoshop-express-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9-%D1%81-%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D0%BC%D0%B8-%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8-%D0%B8-%D1%80%D0%B0%D0%BC%D0%BA%D0%B0%D0%BC%D0%B8/9wzdncrfj27n'
)

tag_seed1 = add_tag('с размытием')
tag_seed2 = add_tag('с удалением шума')
tag_seed3 = add_tag('графический редактор', show_in_list=False)
tag_seed4 = add_tag('с фильтрами')
tag_seed5 = add_tag('для цветокоррекции')
if tag_seed1 != None:
    app_seed1.tags.append(tag_seed1)
if tag_seed2 != None:
    app_seed1.tags.append(tag_seed2)
예제 #25
0
from models.application import Application
from controllers.bookcontroller import BookController

app = Application("ebook_reader")
book = BookController()
예제 #26
0
 def test_waiting_list(self):
     season = createBasicSeason(db.session)
     headers = {
         'Authorization': self.token,
         'AccessToken': self.accessToken,
         'Content-type': 'application/json'
     }
     testuser1 = User(username="******",
                      sub="sub",
                      email="email",
                      fullname="Franky Frank")
     testuser2 = User(username="******",
                      sub="uuid",
                      email="email",
                      fullname="Schmemail")
     testuser3 = User(username="******",
                      sub="ubuid",
                      email="email",
                      fullname="bruh")
     db.session.add(testuser1)
     db.session.add(testuser2)
     db.session.add(testuser3)
     db.session.commit()
     createUser(db.session)
     testApplication1 = Application(ApplicationStatus.SUBMITTED,
                                    "Fanta is better than solo",
                                    user=testuser1,
                                    partnerUsername="******",
                                    preferredRoom="d1",
                                    seatRollover=True,
                                    applicationSeason=season,
                                    comments="Not Pepsi, but Pepsi Max")
     testApplication2 = Application(ApplicationStatus.SUBMITTED,
                                    "Fanta is better than solo",
                                    user=testuser2,
                                    partnerUsername="******",
                                    preferredRoom="d1",
                                    seatRollover=True,
                                    applicationSeason=season,
                                    comments="Not Pepsi, but Pepsi Max")
     testApplication3 = Application(ApplicationStatus.SUBMITTED,
                                    "Fanta is better than Cola",
                                    user=testuser3,
                                    partnerUsername="",
                                    preferredRoom="d2",
                                    seatRollover=False,
                                    applicationSeason=season,
                                    comments="Not Cola, but Fanta Free")
     db.session.add(testApplication1)
     db.session.add(testApplication2)
     db.session.add(testApplication3)
     db.session.commit()
     # Dump to create new objects which are not changed by the post
     app1 = json.dumps(testApplication1.to_json())
     app2 = json.dumps(testApplication2.to_json())
     jsondata = json.dumps(dict(ids=[1, 2]))
     approvedApplications = self.app.test_client().post(
         'http://localhost:5000/application/waitingList',
         headers=headers,
         data=jsondata,
     )
     app1 = json.loads(app1)
     app2 = json.loads(app2)
     app1["status"] = "WAITING_LIST"
     app2["status"] = "WAITING_LIST"
     assert approvedApplications.status == "200 OK"
     assert json.loads(approvedApplications.data) == json.loads(
         jsonify([app1, app2]).data)
예제 #27
0
    def test_new_application_with_existing_partner(self):
        season = createBasicSeason(db.session)
        testuser1 = User(username="******",
                         sub=decodedToken.get("sub"),
                         email="email",
                         fullname="Franky Frank")
        testuser2 = User(username="******",
                         sub="sub",
                         email="emails",
                         fullname="Schmemails")
        testApplication = Application(ApplicationStatus.SUBMITTED,
                                      "Pepsi is better than coke",
                                      user=testuser2,
                                      partnerUsername="******",
                                      preferredRoom="d1",
                                      seatRollover=True,
                                      applicationSeason=season,
                                      comments="Not Pepsi, but Pepsi Max")
        db.session.add(testuser1)
        db.session.commit()
        db.session.add(testuser2)
        db.session.add(testApplication)
        db.session.commit()
        mimetype = 'application/json'
        headers = {
            'Content-Type': mimetype,
            'Accept': mimetype,
            'Authorization': self.token,
            'AccessToken': self.accessToken
        }
        user1Response = self.app.test_client().post(
            'http://localhost:5000/application/',
            headers=headers,
            data=json.dumps(
                dict(
                    username=testuser1.username,
                    needs="Fanta is better than solo",
                    comments="Bruh wtf",
                    partnerUsername=testuser2.username,
                    preferredRoom="d1",
                    seatRollover=True,
                )))
        user1expectedResponse = make_response(
            jsonify(
                needs="Fanta is better than solo",
                comments="Bruh wtf",
                id=2,
                status="SUBMITTED",
                user={
                    "id": testuser1.id,
                    "username": testuser1.username,
                    "email": testuser1.email,
                    "fullname": testuser1.fullname
                },
                preferredRoom="d1",
                rank="WRITING_MASTER",
                seatRollover=True,
                partnerApplication={
                    "needs": "Pepsi is better than coke",
                    "comments": "Not Pepsi, but Pepsi Max",
                    "id": 1,
                    "status": "SUBMITTED",
                    "rank": "OTHER",
                    "user": {
                        "id": testuser2.id,
                        "username": testuser2.username,
                        "email": testuser2.email,
                        "fullname": testuser2.fullname
                    },
                    "preferredRoom": "d1",
                    "seatRollover": True,
                },
            ), 201)

        expectedConnectedApplication = jsonify(
            needs="Pepsi is better than coke",
            comments="Not Pepsi, but Pepsi Max",
            id=1,
            status="SUBMITTED",
            user={
                "id": testuser2.id,
                "username": testuser2.username,
                "email": testuser2.email,
                "fullname": testuser2.fullname
            },
            preferredRoom="d1",
            seatRollover=True,
            seat=None,
            rank="OTHER",
            partnerApplication={
                "needs": "Fanta is better than solo",
                "comments": "Bruh wtf",
                "id": 2,
                "status": "SUBMITTED",
                "preferredRoom": "d1",
                "seatRollover": True,
                "rank": "WRITING_MASTER",
                "seat": None,
                "user": {
                    "id": testuser1.id,
                    "username": testuser1.username,
                    "email": testuser1.email,
                    "fullname": testuser1.fullname
                },
            },
        )
        getApplication = self.app.test_client().get(
            'http://localhost:5000/application/byUser/1', headers=headers)
        assert user1expectedResponse.status == user1Response.status
        assert json.loads(user1expectedResponse.data) == json.loads(
            user1Response.data)
        assert getApplication.status == "200 OK"
        assert json.loads(expectedConnectedApplication.data) == json.loads(
            getApplication.data)
예제 #28
0
    def save_applications(self, jobs, students):
        job_list = []
        for job in jobs:
            job_list.append(job)

        apps = [
            Application(job_id=job_list[0]['id'],
                        student_id=students[0]['id']),
            Application(job_id=job_list[3]['id'],
                        student_id=students[0]['id']),
            Application(job_id=job_list[4]['id'],
                        student_id=students[0]['id']),
            Application(job_id=job_list[2]['id'],
                        student_id=students[1]['id']),
            Application(job_id=job_list[1]['id'],
                        student_id=students[1]['id']),
            Application(job_id=job_list[4]['id'],
                        student_id=students[1]['id']),
            Application(job_id=job_list[0]['id'],
                        student_id=students[2]['id']),
            Application(job_id=job_list[1]['id'],
                        student_id=students[2]['id']),
            Application(job_id=job_list[2]['id'],
                        student_id=students[2]['id']),
            Application(job_id=job_list[3]['id'],
                        student_id=students[2]['id']),
            Application(job_id=job_list[4]['id'], student_id=students[2]['id'])
        ]

        for app in apps:
            app.save()