Ejemplo n.º 1
0
 def test_patch_object_exists(self):
     criterion = CriterionFactory()
     data = {
         'name': 'Patched Criterion',
         'type': 'sans serif',
         'judging_round_id': 1
     }
     with self.login(email=self.basic_user().email):
         url = reverse(self.view.view_name, args=[criterion.id])
         self.client.patch(url, data)
         criterion.refresh_from_db()
         assert_data_is_consistent_with_instance(data, criterion)
Ejemplo n.º 2
0
 def test_patch_no_such_object(self):
     criterion = CriterionFactory()
     criterion_id = criterion.id
     criterion.delete()
     data = {
         'name': 'Patched Criterion',
         'type': 'sans serif',
         'judging_round_id': 1
     }
     with self.login(email=self.basic_user().email):
         url = reverse(self.view.view_name, args=[criterion_id])
         response = self.client.patch(url, data)
         self.assertEqual(response.status_code, 404)
 def test_get(self):
     Criterion.objects.all().delete()
     criteria = CriterionFactory.create_batch(5)
     with self.login(email=self.basic_user().email):
         url = reverse(self.view.view_name)
         response = self.client.get(url)
         data = json.loads(response.content)
         results = {result['id']: result for result in data['results']}
         for criterion in criteria:
             assert results[criterion.id]['name'] == criterion.name
 def test_filter_by_judging_round(self):
     criterion = CriterionFactory()
     judging_round_id = criterion.judging_round_id
     with self.login(email=self.basic_user().email):
         url = reverse(self.view.view_name)
         url += "?judging_round={}".format(judging_round_id)
         response = self.client.get(url)
         results = json.loads(response.content)['results']
         self.assertEqual(len(results), 1)
         for key, val in results[0].items():
             self.assertEqual(val, getattr(criterion, key))
 def test_post_bad_int_in_int_field(self):
     criterion = CriterionFactory()
     data = {
         'option': 'Posted Option',
         'weight': 1.5,
         'count': 'one',
         'criterion_id': criterion.id
     }
     with self.login(email=self.basic_user().email):
         url = reverse(self.view.view_name)
         response = self.client.post(url, data)
         error = INVALID_INTEGER_ERROR.format(field='count', value='one')
         assert error in str(response.content)
Ejemplo n.º 6
0
 def test_patch_bad_key_in_data(self):
     criterion = CriterionFactory()
     data = {
         'name': 'Patched Criterion',
         'type': 'sans serif',
         'judging_round_id': 1,
         'bad_key': 'B flat minor'
     }
     with self.login(email=self.basic_user().email):
         url = reverse(self.view.view_name, args=[criterion.id])
         response = self.client.patch(url, data)
         note = valid_keys_note(self.view.helper_class.INPUT_KEYS)
         assert note in str(response.content)
 def test_post_new_object(self):
     criterion = CriterionFactory()
     data = {
         'option': 'Posted Option',
         'weight': 1.5,
         'count': 1,
         'criterion_id': criterion.id
     }
     with self.login(email=self.basic_user().email):
         url = reverse(self.view.view_name)
         response = self.client.post(url, data)
         option_spec_id = json.loads(response.content)['id']
         option_spec = CriterionOptionSpec.objects.get(id=option_spec_id)
         assert_data_is_consistent_with_instance(data, option_spec)
 def test_patch_object_exists(self):
     option_spec = CriterionOptionSpecFactory()
     criterion = CriterionFactory()
     data = {
         'option': 'Patched Option',
         'weight': 1.5,
         'count': 1,
         'criterion_id': criterion.id
     }
     with self.login(email=self.basic_user().email):
         url = reverse(self.view.view_name, args=[option_spec.id])
         self.client.patch(url, data)
         option_spec.refresh_from_db()
         assert_data_is_consistent_with_instance(data, option_spec)
Ejemplo n.º 9
0
 def test_patch_options(self):
     criterion = CriterionFactory()
     patch_options = {
         "id": {
             "type": "integer",
             "readOnly": True,
             "required": True
         },
         "name": {
             "type": "string"
         },
         "type": {
             "type": "string"
         },
         "judging_round_id": {
             "type": "integer"
         }
     }
     self.assert_options_include("PATCH",
                                 patch_options,
                                 object_id=criterion.id)
Ejemplo n.º 10
0
 def test_get(self):
     criterion = CriterionFactory()
     with self.login(email=self.basic_user().email):
         url = reverse(self.view.view_name, args=[criterion.id])
         response = self.client.get(url)
         assert_data_is_consistent_with_instance(response.data, criterion)