def test_set_leitner_record_add_existing_hanzi_to_another_category(self): # arrange util.create_one_leitner_record(self.user, self.category, u'东', '3') util.create_one_leitner_record(self.user, self.category, u'北', 'R') count = 12 util.create_one_HanziStudyCount_instance( self.user, self.category2, count) # 2 is the last number in deck '3' # act url = reverse('hanzistudyrecord-list') + '/leitner_record' data = { 'category_id': self.category2.id, 'grasped_hanzi': json.dumps([]), 'new_hanzi': json.dumps([u'东']) } response = self.client.post(url, data) # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual( HanziStudyCount.objects.get(user=self.user).count, count) self.assertEqual(Hanzi.objects.all().count(), 3) # including 王 added during Setup self.assertEqual( HanziStudyRecord.objects.get( user=self.user, category=self.category, hanzi=Hanzi.objects.get(content=u'东')).leitner_deck, '3') self.assertEqual( HanziStudyRecord.objects.get( user=self.user, category=self.category2, hanzi=Hanzi.objects.get(content=u'东')).leitner_deck, 'C')
def test_set_leitner_record_existing_hanzi_move_from_deck_C_to_progress_deck( self): # arrange util.create_one_leitner_record(self.user, self.category, u'北', 'C') count = 12 util.create_one_HanziStudyCount_instance(self.user, self.category, count) # irrelate setting # act url = reverse('hanzistudyrecord-list') + '/leitner_record' data = { 'category_id': self.category.id, 'grasped_hanzi': json.dumps([]), 'new_hanzi': json.dumps([u'东']) # 东 stay deck C } response = self.client.post(url, data) # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual( HanziStudyCount.objects.get(user=self.user).count, count) self.assertEqual(Hanzi.objects.all().count(), 3) # including 王 added during Setup self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'东')).leitner_deck, 'C') self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'北')).leitner_deck, 'C')
def test_set_leitner_record(self): # arrange retired_hanzis = [u'北', u'春', u'夏', u'冬'] util.create_one_leitner_record(self.user, self.category, u'东', 'C') util.create_one_leitner_record(self.user, self.category, u'南', '1') util.create_one_leitner_record(self.user, self.category, u'西', '2') for h in retired_hanzis: util.create_one_leitner_record(self.user, self.category, h, 'R') util.create_one_HanziStudyCount_instance(self.user, self.category, 1) # act url = reverse('hanzistudyrecord-list') + '/leitner_record' data = { 'category_id': self.category.id, 'grasped_hanzi': json.dumps([u'东', u'西', u'冬']), # 东 -> deck 1, 西 -> deck R, 冬 -> deck R 'new_hanzi': json.dumps([u'李', u'南']) # 南 -> deck C, new Hanzi, 李 -> deck C } response = self.client.post(url, data) # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(HanziStudyCount.objects.get(user=self.user).count, 2) self.assertEqual(Hanzi.objects.all().count(), 9) # including 王 added during Setup self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'东')).leitner_deck, '1') self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'西')).leitner_deck, 'R') self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'李')).leitner_deck, 'C') self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'南')).leitner_deck, 'C') for h in retired_hanzis: self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=h)).leitner_deck, 'R') self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'南')).forget_count, 1) self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'东')).repeat_count, 1) self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'西')).repeat_count, 1) self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'李')).repeat_count, 0) # 北 is new self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'南')).repeat_count, 1)
def test_set_leitner_record_response_404_when_without_category_parameter( self): # arrange retired_hanzis = [u'北', u'春', u'夏', u'冬'] util.create_one_leitner_record(self.user, self.category, u'东', 'C') util.create_one_leitner_record(self.user, self.category, u'南', '1') util.create_one_leitner_record(self.user, self.category, u'西', '2') for h in retired_hanzis: util.create_one_leitner_record(self.user, self.category, h, 'R') util.create_one_HanziStudyCount_instance(self.user, self.category, 1) # act url = reverse('hanzistudyrecord-list') + '/leitner_record' data = { 'grasped_hanzi': json.dumps([u'东', u'西', u'冬']), # 东 -> deck 1, 西 -> deck R, 冬 -> deck R 'new_hanzi': json.dumps([u'李', u'南']) # 南 -> deck C, new Hanzi, 李 -> deck C } response = self.client.post(url, data) # assert self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
def test_set_leitner_record_existing_hanzi_move_from_deck_C_to_progress_deck(self): # arrange util.create_one_leitner_record(self.user, self.category, u'北', 'C') count = 12 util.create_one_HanziStudyCount_instance(self.user, self.category, count) # irrelate setting # act url = reverse('hanzistudyrecord-list') + '/leitner_record' data = { 'category_id': self.category.id, 'grasped_hanzi': json.dumps([]), 'new_hanzi': json.dumps([u'东']) # 东 stay deck C } response = self.client.post(url, data) # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(HanziStudyCount.objects.get(user=self.user).count, count) self.assertEqual(Hanzi.objects.all().count(), 3) # including 王 added during Setup self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'东')).leitner_deck, 'C') self.assertEqual(HanziStudyRecord.objects.get(user=self.user, hanzi=Hanzi.objects.get(content=u'北')).leitner_deck, 'C')
def test_set_leitner_record_add_existing_hanzi_to_another_category(self): # arrange util.create_one_leitner_record(self.user, self.category, u'东', '3') util.create_one_leitner_record(self.user, self.category, u'北', 'R') count = 12 util.create_one_HanziStudyCount_instance(self.user, self.category2, count) # 2 is the last number in deck '3' # act url = reverse('hanzistudyrecord-list') + '/leitner_record' data = { 'category_id': self.category2.id, 'grasped_hanzi': json.dumps([]), 'new_hanzi': json.dumps([u'东']) } response = self.client.post(url, data) # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(HanziStudyCount.objects.get(user=self.user).count, count) self.assertEqual(Hanzi.objects.all().count(), 3) # including 王 added during Setup self.assertEqual(HanziStudyRecord.objects.get(user=self.user, category=self.category, hanzi=Hanzi.objects.get(content=u'东')).leitner_deck, '3') self.assertEqual(HanziStudyRecord.objects.get(user=self.user, category=self.category2, hanzi=Hanzi.objects.get(content=u'东')).leitner_deck, 'C')
def test_get_leitner_record_with_num_retired(self): # arrange retired_hanzis = [u'北', u'春', u'夏', u'冬'] util.create_one_leitner_record(self.user, self.category, u'东', 'C') util.create_one_leitner_record(self.user, self.category, u'南', '1') util.create_one_leitner_record(self.user, self.category, u'西', '3') for h in retired_hanzis: util.create_one_leitner_record(self.user, self.category, h, 'R') util.create_one_HanziStudyCount_instance(self.user, self.category, 1) # act num_retired = 2 url = reverse('hanzistudyrecord-list') + '/leitner_record?num_retired={num_retired}'.format(num_retired=num_retired) url += '&category_id={category_id}'.format(category_id=self.category.id) response = self.client.get(url, format='json') # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 4) # two from deck R
def test_get_leitner_record_response_404_without_category_parameter(self): # arrange util.create_one_leitner_record(self.user, self.category, u'东', 'C') util.create_one_leitner_record(self.user, self.category, u'南', '1') util.create_one_leitner_record(self.user, self.category, u'西', '3') util.create_one_HanziStudyCount_instance(self.user, self.category, 1) # act url = reverse('hanzistudyrecord-list') + '/leitner_record' response = self.client.get(url, format='json') # assert self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
def test_set_leitner_record_response_404_when_without_category_parameter(self): # arrange retired_hanzis = [u'北', u'春', u'夏', u'冬'] util.create_one_leitner_record(self.user, self.category, u'东', 'C') util.create_one_leitner_record(self.user, self.category, u'南', '1') util.create_one_leitner_record(self.user, self.category, u'西', '2') for h in retired_hanzis: util.create_one_leitner_record(self.user, self.category, h, 'R') util.create_one_HanziStudyCount_instance(self.user, self.category, 1) # act url = reverse('hanzistudyrecord-list') + '/leitner_record' data = { 'grasped_hanzi': json.dumps([u'东', u'西', u'冬']), # 东 -> deck 1, 西 -> deck R, 冬 -> deck R 'new_hanzi': json.dumps([u'李', u'南']) # 南 -> deck C, new Hanzi, 李 -> deck C } response = self.client.post(url, data) # assert self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
def test_get_leitner_record_with_num_retired(self): # arrange retired_hanzis = [u'北', u'春', u'夏', u'冬'] util.create_one_leitner_record(self.user, self.category, u'东', 'C') util.create_one_leitner_record(self.user, self.category, u'南', '1') util.create_one_leitner_record(self.user, self.category, u'西', '3') for h in retired_hanzis: util.create_one_leitner_record(self.user, self.category, h, 'R') util.create_one_HanziStudyCount_instance(self.user, self.category, 1) # act num_retired = 2 url = reverse('hanzistudyrecord-list' ) + '/leitner_record?num_retired={num_retired}'.format( num_retired=num_retired) url += '&category_id={category_id}'.format( category_id=self.category.id) response = self.client.get(url, format='json') # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 4) # two from deck R
def test_get_leitner_record(self): # arrange util.create_one_leitner_record(self.user, self.category, u'东', 'C') util.create_one_leitner_record(self.user, self.category, u'南', '1') util.create_one_leitner_record(self.user, self.category, u'西', '3') util.create_one_HanziStudyCount_instance(self.user, self.category, 1) # act url = reverse('hanzistudyrecord-list') + '/leitner_record' url += '?category_id={category_id}'.format(category_id=self.category.id) response = self.client.get(url, format='json') # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 2)
def test_get_leitner_record(self): # arrange util.create_one_leitner_record(self.user, self.category, u'东', 'C') util.create_one_leitner_record(self.user, self.category, u'南', '1') util.create_one_leitner_record(self.user, self.category, u'西', '3') util.create_one_HanziStudyCount_instance(self.user, self.category, 1) # act url = reverse('hanzistudyrecord-list') + '/leitner_record' url += '?category_id={category_id}'.format( category_id=self.category.id) response = self.client.get(url, format='json') # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 2)
def test_set_leitner_record(self): # arrange retired_hanzis = [u'北', u'春', u'夏', u'冬'] util.create_one_leitner_record(self.user, self.category, u'东', 'C') util.create_one_leitner_record(self.user, self.category, u'南', '1') util.create_one_leitner_record(self.user, self.category, u'西', '2') for h in retired_hanzis: util.create_one_leitner_record(self.user, self.category, h, 'R') util.create_one_HanziStudyCount_instance(self.user, self.category, 1) # act url = reverse('hanzistudyrecord-list') + '/leitner_record' data = { 'category_id': self.category.id, 'grasped_hanzi': json.dumps([u'东', u'西', u'冬']), # 东 -> deck 1, 西 -> deck R, 冬 -> deck R 'new_hanzi': json.dumps([u'李', u'南']) # 南 -> deck C, new Hanzi, 李 -> deck C } response = self.client.post(url, data) # assert self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(HanziStudyCount.objects.get(user=self.user).count, 2) self.assertEqual(Hanzi.objects.all().count(), 9) # including 王 added during Setup self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'东')).leitner_deck, '1') self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'西')).leitner_deck, 'R') self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'李')).leitner_deck, 'C') self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'南')).leitner_deck, 'C') for h in retired_hanzis: self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=h)).leitner_deck, 'R') self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'南')).forget_count, 1) self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'东')).repeat_count, 1) self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'西')).repeat_count, 1) self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'李')).repeat_count, 0) # 北 is new self.assertEqual( HanziStudyRecord.objects.get( user=self.user, hanzi=Hanzi.objects.get(content=u'南')).repeat_count, 1)