Пример #1
0
 def giveAnswer(self):
     self.setHeaders([{'type': 'CONTENT-TYPE', 'value': 'application/json'}])
     jsonBody = self.readPayload()
     isCorrect = ExerciseHandler.checkAnswer(jsonBody['questionId'], jsonBody['answer'])
     parameters = urlparse.parse_qs(urlparse.urlparse(self.path).query)
     UserHandler.setQuestionAnswer(parameters['user'][0], parameters['questionNumber'][0], jsonBody['answer'],
                                   isCorrect)
Пример #2
0
 def giveAnswer(self):
     self.setHeaders([{
         'type': 'CONTENT-TYPE',
         'value': 'application/json'
     }])
     jsonBody = self.readPayload()
     isCorrect = ExerciseHandler.checkAnswer(jsonBody['questionId'],
                                             jsonBody['answer'])
     parameters = urlparse.parse_qs(urlparse.urlparse(self.path).query)
     UserHandler.setQuestionAnswer(parameters['user'][0],
                                   parameters['questionNumber'][0],
                                   jsonBody['answer'], isCorrect)
Пример #3
0
def test_delete_other_user(dummy_user):
    # No integration test possible because the application flow currently
    # doesn't allow for this scenario to occur.
    _, user_id = save(dummy_user)
    mock_request = Mock()
    type(mock_request).authenticated_userid = PropertyMock(
        return_value=str(uuid.uuid4()))

    user_handler = UserHandler(get_user_by_id(user_id), mock_request)

    with pytest.raises(HTTPNoContent):
        user_handler.delete()

    assert get_user_by_id(user_id) is None
Пример #4
0
 def write(msg, fromUser, lang):
     user_handler = UserHandler()
     if len(msg.split()) == 0:
         content = Resource.getMsg("EmptyMsg")
     elif (user_handler.verify_user(fromUser) == 0):
         # Qulified User
         if int(DBHandler().insert(
                 "INSERT into Notepad VALUES (null, '%s', null, '%s')" %
             (fromUser, msg))) == 1:
             content = Resource.getMsg("Recorded")
         else:
             content = Resource.getMsg("FailRecord")
     else:
         content = Resource.getMsg("QualifiedUser")
     return content
Пример #5
0
 def remove(msg, fromUser, lang):
     user_handler = UserHandler()
     if (user_handler.verify_user(fromUser) == 0):
         # Qulified User
         note_set = DBHandler().select(
             "SELECT IND from Notepad WHERE Open_ID = '%s'" % fromUser)
         index = 1
         for line in note_set[1]:
             if msg == str(index):
                 DBHandler().delete("DELETE from Notepad where IND = '%d'" %
                                    line[0])
             index += 1
         content = Resource.getMsg("Removed")
     else:
         content = Resource.getMsg("QualifiedUser")
     return content
Пример #6
0
 def check(msg, fromUser, lang):
     content = ""
     user_handler = UserHandler()
     if (user_handler.verify_user(fromUser) == 0):
         # Qulified User
         note_set = DBHandler().select(
             "SELECT RecoreData,Note from Notepad WHERE Open_ID = '%s'" %
             fromUser)
         index = 1
         for line in note_set[1]:
             content = content + str(index) + ") " + line[0].strftime(
                 "%Y-%m-%d %H:%M:%S") + " " + line[1] + "\n"
             index += 1
     else:
         content = Resource.getMsg("QualifiedUser")
     return content
Пример #7
0
def handle_payee(update, context):
    username = update.message.chat.username
    payee = update.message.text
    if payee == 'Back':
        payee = context.user_data['payee']
    try:
        response = UserHandler.find_user(payee)
        if payee == username:
            update.message.reply_text(
                'You cannot make transactions to yourself!')
            return handle_exit_to_main(update, context)

        elif response:
            update.message.reply_text(
                f'Payee\'s telegram username is {payee}. Please specify amount to pay in cents. For $1, input: 100',
                reply_markup=ReplyKeyboardMarkup(build_navigation_keyboard(),
                                                 one_time_keyboard=True))
            context.user_data['payee'] = payee
            return TRANSACTION_AMOUNT
        else:
            update.message.reply_text(
                f'Payee: {payee}. does not exist'.format(payee))
            return handle_exit_to_main(update, context)

    except Exception as e:
        print(chalk.blue("handle_payee"))
        print(e)
        update.message.reply_text("An error occur in handle_payee")
Пример #8
0
    def test_searchByUser_AddedInList(self):
        userHandler = UserHandler.UserListHandler()
        userData = {
            "Name": "Ana Lopez",
            "Address": "Av.Madeiras 197, Int.86",
            "Phone": "3352525343",
            "Email": "*****@*****.**"
        }
        user2Data = {
            "Name": "Maria Gonzalez",
            "Address": "Calle Jaque #210",
            "Phone": "4491123908",
            "Email": "*****@*****.**"
        }

        userHandler.createNewUserRecord(userData)
        userHandler.createNewUserRecord(user2Data)
        userResults = userHandler.searchUserBy("Name", "Maria Gonzalez")
        for user in userResults.myList:
            name = user.getUserRecord()["Name"]
            address = user.getUserRecord()["Address"]
            phone = user.getUserRecord()["Phone"]
            email = user.getUserRecord()["Email"]
            self.assertEqual(name, "Maria Gonzalez")
            self.assertEqual(address, "Calle Jaque #210")
            self.assertEqual(phone, "4491123908")
            self.assertEqual(email, "*****@*****.**")
Пример #9
0
 def test_searchByUser_Loadedfromfile(self):
     userHandler = UserHandler.UserListHandler()
     userHandler.loadUserRecord("test_users.txt")
     userResults = userHandler.searchUserBy("Name",
                                            "Irma Nataly Alonso de Leon")
     for user in userResults.myList:
         name = user.getUserRecord()["Name"]
         address = user.getUserRecord()["Address"]
         phone = user.getUserRecord()["Phone"]
         email = user.getUserRecord()["Email"]
         self.assertEqual(name, "Irma Nataly Alonso de Leon")
         self.assertEqual(address, "Av.Madeiras 197, Int.46")
         self.assertEqual(phone, "3318623976")
         self.assertEqual(email, "*****@*****.**")
Пример #10
0
    def sendQuestion(self):
        try:
            parameters = urlparse.parse_qs(urlparse.urlparse(self.path).query)
            print parameters

            additionalMessage = 'okay'
            questionNumber = int(parameters['questionNumber'][0])
            if len(ExerciseHandler.exercises) - 1 < questionNumber:
                questionNumber = len(ExerciseHandler.exercises) - 1
                additionalMessage = 'Last question reached!'

            exercise = ExerciseHandler.exercises[questionNumber]

            user = UserHandler.getUserByName(parameters['user'][0])
            userAnswer = ''

            if user is not None:
                questionAnswer = user.checkIfAlreadyAnswered(exercise.id)
                if questionAnswer is not None:
                    userAnswer = questionAnswer['answer']

            if exercise.type == 'freeText':
                self.wfile.write(
                    json.dumps({
                        'id': exercise.id,
                        'type': 'freeText',
                        'question': exercise.exerciseText,
                        'givenAnswer': userAnswer,
                        'additionalMessage': additionalMessage
                    }))
            elif exercise.type == 'multipleChoice':
                answerSelection = []
                for correctAnswer in exercise.correctAnswers:
                    answerSelection.append(correctAnswer)
                for wrongAnswer in exercise.wrongAnswers:
                    answerSelection.append(wrongAnswer)
                random.shuffle(answerSelection)
                self.wfile.write(
                    json.dumps({
                        'id': exercise.id,
                        'type': 'multipleChoice',
                        'question': exercise.exerciseText,
                        'answerSelection': answerSelection,
                        'givenAnswer': userAnswer,
                        'additionalMessage': additionalMessage
                    }))

        except IndexError as e:
            print str(e)
Пример #11
0
    def run(self, arg_input_video_folder, arg_user_root_folder, arg_selection):
        logger.info("Running Application with video folder: " +
                    arg_input_video_folder + " user folder: " +
                    arg_user_root_folder + "\n")

        # Create objects
        tmp_motion_start_detector = MotionStartDetector.MotionStartDetector()
        tmp_user_handler = UserHandler.UserHandler()
        tmp_motion_time_user_matching = MotionTimeUserMatching.MotionTimeUserMatching(
        )
        tmp_full_clip_cut_extractor = FullClipExtractor.FullClipExtractor()
        tmp_tracker_clip_extractor = TrackerClipExtractor.TrackerClipExtractor(
        )

        if not os.path.exists(arg_input_video_folder):
            raise ValueError("Video folder is not a valid folder: " +
                             arg_input_video_folder)
        if not os.path.exists(arg_user_root_folder):
            raise ValueError("User folder is not a valid folder: " +
                             arg_user_root_folder)

        if ActionOptions.GENERATE_MOTION_FILES.value in arg_selection:
            tmp_motion_start_detector.create_motion_start_files(
                arg_input_video_folder)

        if ActionOptions.INIT_USERS.value in arg_selection:
            tmp_user_handler.init(arg_user_root_folder)

        if ActionOptions.MATCH_LOCATION_IN_MOTION_FILES.value in arg_selection:
            tmp_motion_time_user_matching.match_motion_start_times_with_users(
                arg_input_video_folder, tmp_user_handler)

        if ActionOptions.GENERATE_FULL_CLIP_OUTPUTS.value in arg_selection:
            clip_specification_list = tmp_user_handler.create_clip_specifications(
                ClipTypes.FULL_CLIP)
            tmp_full_clip_cut_extractor.extract_clips_from_list(
                clip_specification_list)

        if ActionOptions.GENERATE_TRACKER_CLIP_OUTPUTS.value in arg_selection:
            clip_specification_list = tmp_user_handler.create_clip_specifications(
                ClipTypes.TRACKER_CLIP)
            tmp_tracker_clip_extractor.extract_clips_from_list(
                clip_specification_list)
Пример #12
0
def handle_fund_manager(update, context):
    fund_manager = update.message.text
    if fund_manager == 'Back':
        fund_manager = context.user_data['fund_manager']
    try:
        response = UserHandler.find_user(fund_manager)
        if response:
            update.message.reply_text(
                f'Fund Manager\'s telegram username to deposit/withdraw from is {fund_manager}. Do you confirm?',
                reply_markup=ReplyKeyboardMarkup(build_confirmation_keyboard(),
                                                 one_time_keyboard=True))
            context.user_data['fund_manager'] = fund_manager
            return FUND_CONFIRMATION
        else:
            update.message.reply_text(
                f'Admin: {fund_manager}. does not exist'.format(fund_manager))
            return handle_exit_to_main(update, context)

    except Exception as e:
        print(e)
        update.message.reply_text("An error occur in handle_transaction")
Пример #13
0
    def sendQuestion(self):
        try:
            parameters = urlparse.parse_qs(urlparse.urlparse(self.path).query)
            print parameters

            additionalMessage = 'okay'
            questionNumber = int(parameters['questionNumber'][0])
            if len(ExerciseHandler.exercises) - 1 < questionNumber:
                questionNumber = len(ExerciseHandler.exercises) - 1
                additionalMessage = 'Last question reached!'

            exercise = ExerciseHandler.exercises[questionNumber]

            user = UserHandler.getUserByName(parameters['user'][0])
            userAnswer = ''

            if user is not None:
                questionAnswer = user.checkIfAlreadyAnswered(exercise.id)
                if questionAnswer is not None:
                    userAnswer = questionAnswer['answer']

            if exercise.type == 'freeText':
                self.wfile.write(json.dumps({'id': exercise.id, 'type': 'freeText', 'question': exercise.exerciseText,
                                             'givenAnswer': userAnswer, 'additionalMessage': additionalMessage}))
            elif exercise.type == 'multipleChoice':
                answerSelection = []
                for correctAnswer in exercise.correctAnswers:
                    answerSelection.append(correctAnswer)
                for wrongAnswer in exercise.wrongAnswers:
                    answerSelection.append(wrongAnswer)
                random.shuffle(answerSelection)
                self.wfile.write(
                    json.dumps({'id': exercise.id, 'type': 'multipleChoice', 'question': exercise.exerciseText,
                                'answerSelection': answerSelection, 'givenAnswer': userAnswer,
                                'additionalMessage': additionalMessage}))

        except IndexError as e:
            print str(e)
Пример #14
0
    def __init__(self,action_pipe_name,data_pipe_name,do_conct_pipe,do_handle_users):
        self.ip = ''
        self.port = 0
        self.client_num = None
        self.client_addr = (self.ip, self.port)
        self.request_sock = None
        self.server_sock = None
        self.report_sock = None
        self.last_node_received = None
        self.action_pipe_name = action_pipe_name
        self.data_pipe_name = data_pipe_name
        self.do_conct_pipe = do_conct_pipe
        self.do_handle_users = do_handle_users
        self.Send_msg_Hndler = Send_Message_Handler()
        self.is_acked = False
        self.hash_to_msg = {}
        self.temp = 0

        if self.do_handle_users == "true":
            import UserHandler
            self.userHandler = UserHandler.user_handler()
            thread.start_new_thread(self.userHandler.listen_and_accept,()
)