def setUp(self): super(NextJobHandlerTest, self).setUp() self.exp_id = 'exp_id1' self.title = 'Testing Classifier storing' self.category = 'Test' interaction_id = 'TextInput' self.algorithm_id = feconf.INTERACTION_CLASSIFIER_MAPPING[ interaction_id]['algorithm_id'] self.training_data = [{ u'answer_group_index': 1, u'answers': [u'a1', u'a2'] }, { u'answer_group_index': 2, u'answers': [u'a2', u'a3'] }] self.job_id = classifier_models.ClassifierTrainingJobModel.create( self.algorithm_id, interaction_id, self.exp_id, 1, datetime.datetime.utcnow(), self.training_data, 'Home', feconf.TRAINING_JOB_STATUS_NEW, 1) fs_services.save_classifier_data(self.exp_id, self.job_id, {}) self.expected_response = { u'job_id': self.job_id, u'training_data': self.training_data, u'algorithm_id': self.algorithm_id } self.payload = {} self.payload['vm_id'] = feconf.DEFAULT_VM_ID secret = feconf.DEFAULT_VM_SHARED_SECRET self.payload['message'] = json.dumps({}) self.payload['signature'] = classifier.generate_signature( python_utils.convert_to_bytes(secret), self.payload['message'])
def setUp(self): super(NextJobHandlerTest, self).setUp() self.exp_id = 'exp_id1' self.title = 'Testing Classifier storing' self.category = 'Test' interaction_id = 'TextInput' self.algorithm_id = feconf.INTERACTION_CLASSIFIER_MAPPING[ interaction_id]['algorithm_id'] self.training_data = [ { u'answer_group_index': 1, u'answers': [u'a1', u'a2'] }, { u'answer_group_index': 2, u'answers': [u'a2', u'a3'] } ] self.job_id = classifier_services.create_classifier_training_job( self.algorithm_id, interaction_id, self.exp_id, 1, 'Home', self.training_data, feconf.TRAINING_JOB_STATUS_NEW) self.expected_response = { u'job_id' : unicode(self.job_id, 'utf-8'), u'training_data' : self.training_data, u'algorithm_id' : unicode(self.algorithm_id, 'utf-8') } self.payload = {} self.payload['vm_id'] = feconf.DEFAULT_VM_ID secret = feconf.DEFAULT_VM_SHARED_SECRET self.payload['message'] = json.dumps({}) self.payload['signature'] = classifier.generate_signature( secret, self.payload['message'])
def setUp(self): super(TrainedClassifierHandlerTest, self).setUp() self.exp_id = 'exp_id1' self.title = 'Testing Classifier storing' self.category = 'Test' yaml_path = os.path.join( feconf.TESTS_DATA_DIR, 'string_classifier_test.yaml') with open(yaml_path, 'r') as yaml_file: self.yaml_content = yaml_file.read() self.signup(self.ADMIN_EMAIL, self.ADMIN_USERNAME) self.signup('*****@*****.**', 'mod') assets_list = [] with self.swap(feconf, 'ENABLE_ML_CLASSIFIERS', True): exp_services.save_new_exploration_from_yaml_and_assets( feconf.SYSTEM_COMMITTER_ID, self.yaml_content, self.exp_id, assets_list) self.exploration = exp_services.get_exploration_by_id(self.exp_id) self.classifier_data_with_floats_stringified = { '_alpha': '0.1', '_beta': '0.001', '_prediction_threshold': '0.5', '_training_iterations': 25, '_prediction_iterations': 5, '_num_labels': 10, '_num_docs': 12, '_num_words': 20, '_label_to_id': {'text': 1}, '_word_to_id': {'hello': 2}, '_w_dp': [], '_b_dl': [], '_l_dp': [], '_c_dl': [], '_c_lw': [], '_c_l': [], } classifier_training_jobs = ( classifier_services.get_classifier_training_jobs( self.exp_id, self.exploration.version, ['Home'])) self.assertEqual(len(classifier_training_jobs), 1) classifier_training_job = classifier_training_jobs[0] self.job_id = classifier_training_job.job_id # TODO(pranavsid98): Replace the three commands below with # mark_training_job_pending after Giritheja's PR gets merged. classifier_training_job_model = ( classifier_models.ClassifierTrainingJobModel.get( self.job_id, strict=False)) classifier_training_job_model.status = ( feconf.TRAINING_JOB_STATUS_PENDING) classifier_training_job_model.put() self.job_result_dict = { 'job_id': self.job_id, 'classifier_data_with_floats_stringified': ( self.classifier_data_with_floats_stringified) } self.payload = {} self.payload['vm_id'] = feconf.DEFAULT_VM_ID self.payload['message'] = self.job_result_dict secret = feconf.DEFAULT_VM_SHARED_SECRET self.payload['signature'] = classifier.generate_signature( secret, self.payload['message'])