def test_delete_missing_single_user(token, self): create_test_user() # ensure there are records with self.client: response = self.client.delete( 'people/people/09', content_type='application/json', headers={'Authorization': f'Bearer {token}'} ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 404) self.assertIn('The requested URL was not found on the server.', data['message'])
def setUp(self): #set up the owner. cred means all the username, password self.owner = create_test_user('*****@*****.**') self.project = Project.objects.create(name='Project_Test', desc='', owner_id=self.owner.id) #set up builder1 and builder 2 self.builder1 = create_test_user('*****@*****.**') self.builder2 = create_test_user('*****@*****.**') #builder 1 and 2 will apply to the same project self.project.waitlist.add(self.builder1) self.project.waitlist.add(self.builder2) #login as the owner self.client = Client()
def test_edit_missing_single_user(token, self): create_test_user() # ensure there are records with self.client: response = self.client.put( '/people/people/09', data=json.dumps({ 'firstname': 'Bob', 'lastname': 'Holmes', 'address': '77 Verulam Road' }), content_type='application/json', headers={'Authorization': f'Bearer {token}'} ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 404) self.assertIn('The requested URL was not found on the server.', data['message'])
def test_get_single_user(self): person = create_test_user() with self.client: response = self.client.get( '/people/people/'+str(person.id), data=json.dumps({}), content_type='application/json' ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 200) self.assertIn(person.username, data['username']) self.assertIn(person.firstname, data['firstname']) self.assertIn(person.lastname, data['lastname'])
def test_edit_existing_single_user(token, self): person = create_test_user() with self.client: response = self.client.put( '/people/people/'+str(person.id), data=json.dumps({'firstname': 'Steve'}), content_type='application/json', headers={'Authorization': f'Bearer {token}'} ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 200) self.assertIn('Steve', data['firstname']) self.assertIn(person.lastname, data['lastname'])
def test_add_skill_to_person(token, self): person = create_test_user() skill = create_test_skill() with self.client: response = self.client.put( '/people/people/'+str(person.id), data = json.dumps({'skills':[str(skill.id)]}), content_type='application/json', headers={'Authorization': f'Bearer {token}'} ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code,200) self.assertEqual(len(data['skills']), 1) self.assertEqual(data['skills'][0],str(skill.id))
def test_delete_single_user(token, self): person = create_test_user() with self.client: response = self.client.delete( 'people/people/'+str(person.id), content_type='application/json', headers={'Authorization': f'Bearer {token}'} ) # data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 200) response = self.client.get( 'people/people/'+str(person.id), content_type='application/json' ) self.assertEqual(response.status_code, 404)
def test_edit_existing_single_user_invalid_data(token, self): person = create_test_user() with self.client: response = self.client.put( '/people/people/'+str(person.id), data=json.dumps({'foo': 'bar'}), content_type='application/json', headers={'Authorization': f'Bearer {token}'} ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 200) self.assertIn(person.username, data['username']) self.assertIn(person.firstname, data['firstname']) self.assertIn(person.lastname, data['lastname']) #self.assertIn(person.address, data['address']) self.assertFalse('foo' in data.keys())
def test_apply_project(self): c = Client() builder = create_test_user('*****@*****.**') l = c.login(username=builder.username, password=builder.username) r = c.post(reverse('project_apply'), {'project_id':self.project.id}) #test if the builder should appear in the builder list of the project self.assertEqual(len(self.project.waitlist.filter(id=builder.id)), 1) application = Application.objects.filter(project__id=self.project.id, builder__id=builder.id) #test for application recorded self.assertEqual(len(application),1) #test for correct pending status self.assertEqual(application[0].status, 0) r = c.post(reverse('project_apply'), {'project_id':self.project.id}) #test if the builder apply to the same project again, it means unapply self.assertEqual(len(self.project.waitlist.filter(id=builder.id)), 0)
def test_apply_project(self): c = Client() builder = create_test_user('*****@*****.**') l = c.login(username=builder.username, password=builder.username) r = c.post(reverse('project_apply'), {'project_id': self.project.id}) #test if the builder should appear in the builder list of the project self.assertEqual(len(self.project.waitlist.filter(id=builder.id)), 1) application = Application.objects.filter(project__id=self.project.id, builder__id=builder.id) #test for application recorded self.assertEqual(len(application), 1) #test for correct pending status self.assertEqual(application[0].status, 0) r = c.post(reverse('project_apply'), {'project_id': self.project.id}) #test if the builder apply to the same project again, it means unapply self.assertEqual(len(self.project.waitlist.filter(id=builder.id)), 0)
def test_decode_auth_token(self): empty_database() user = create_test_user() auth_token = user.encode_auth_token(user.username) self.assertTrue(isinstance(auth_token, bytes))
def test_passwords_are_random(self): user_one = create_test_user(username="******", password='******') user_two = create_test_user(username="******", password='******') self.assertNotEqual(user_one.password, user_two.password)
def test_add_user_duplicate_username(self): with self.assertRaises(NotUniqueError): create_test_user()
def setUp(self): self.builder2 = create_test_user('*****@*****.**') self.project = Project.objects.create(name='Project_Test', desc='', owner_id=self.builder2.id)
def test_add_person(self): person = create_test_user() self.assertTrue(person.id) self.assertTrue(person.active) self.assertTrue(person.password) self.assertFalse(person.admin)
def setUp(self): self.owner = create_test_user('*****@*****.**') self.builder1 = create_test_user('*****@*****.**') self.builder2 = create_test_user('*****@*****.**') pass