def handle(self, *args, **options): with open(options['file_path'], 'r') as f: filename, file_extension = os.path.splitext(options['file_path']) if file_extension == '.yaml': user_list = yaml.load(f) elif file_extension == '.csv': reader = csv.reader(f) user_list = [row for row in reader] headers = user_list.pop(0) user_dict_list = [] for i in range(0, len(user_list)): user_dict = {} for j in range(0, len(headers)): user_dict.update({headers[j]: user_list[i][j]}) user_dict_list.append(user_dict) user_list = user_dict_list else: raise NotImplementedError( "'{0}' file type not supported".format(file_extension)) for accounts_user in user_list: new_user_details = { 'last_name': accounts_user['last_name'], 'username': accounts_user['username'], 'full_name': None, 'first_name': accounts_user['first_name'], 'uid': accounts_user['id'] } create_user(**new_user_details) response = self.style.SUCCESS("Import Successful") self.stdout.write(response)
def handle(self, *args, **options): with open(options['file_path'], 'r') as f: filename, file_extension = os.path.splitext(options['file_path']) if file_extension == '.yaml': user_list = yaml.load(f) elif file_extension == '.csv': reader = csv.reader(f) user_list = [row for row in reader] headers = user_list.pop(0) user_dict_list = [] for i in range(0, len(user_list)): user_dict = {} for j in range(0, len(headers)): user_dict.update({headers[j]: user_list[i][j]}) user_dict_list.append(user_dict) user_list = user_dict_list else: raise NotImplementedError( "'{0}' file type not supported".format(file_extension)) for accounts_user in user_list: new_user_details = {'last_name': accounts_user['last_name'], 'username': accounts_user['username'], 'full_name': None, 'first_name': accounts_user['first_name'], 'uid': accounts_user['id']} create_user(**new_user_details) response = self.style.SUCCESS("Import Successful") self.stdout.write(response)
def test_update_faculty_status_all_command(self): from accounts.utils import create_user user_details = {'last_name': 'Hart', 'username': '******', 'full_name': None, 'first_name': 'Richard', 'uid': 16207} #this information probably test_user = create_user(**user_details) self.assertFalse(test_user.groups.filter(name='Faculty').exists()) out = StringIO() call_command('update_faculty_status', '--all', stdout=out) self.assertIn("Success", out.getvalue()) test_user = User.objects.filter(username=user_details['username'])[0] self.assertTrue(test_user.groups.filter(name='Faculty').exists())
def test_update_faculty_status_command(self): test_user = {'last_name': 'last_name', 'username': '******', 'full_name': None, 'first_name': 'first_name', 'uid': 0} returned_user = create_user(**test_user) out = StringIO() cms_id = str(returned_user.pk) self.assertFalse(returned_user.groups.filter(name='Faculty').exists()) call_command( 'update_faculty_status', cms_id, stdout=out) self.assertIn("Success", out.getvalue()) self.assertTrue(returned_user.groups.filter(name='Faculty').exists())
def test_update_faculty_status_command(self): test_user = { 'last_name': 'last_name', 'username': '******', 'full_name': None, 'first_name': 'first_name', 'uid': 0 } returned_user = create_user(**test_user) out = StringIO() cms_id = str(returned_user.pk) self.assertFalse(returned_user.groups.filter(name='Faculty').exists()) call_command('update_faculty_status', cms_id, stdout=out) self.assertIn("Success", out.getvalue()) self.assertTrue(returned_user.groups.filter(name='Faculty').exists())
def test_user_faculty_group(self): user = User.objects.create_user('john', '*****@*****.**', 'johnpassword') user.save() self.client.force_login(user) response = self.client.get('/api/user/') self.assertEqual(response.status_code, 200) response_list = json.loads(response.content.decode(response.charset)) expected_user_info = { 'is_superuser': False, 'username': '******', 'first_name': '', 'groups': [], 'last_name': '', 'is_staff': False, 'accounts_id': None } returned_user_info = response_list[0] self.assertDictEqual(expected_user_info, returned_user_info) test_user = { 'last_name': 'last_name', 'username': '******', 'full_name': None, 'first_name': 'first_name', 'uid': '0' } new_user = create_user(**test_user) self.client.force_login(new_user) self.client.get('/api/user/') time.sleep(1) response = self.client.get('/api/user/') self.assertEqual(response.status_code, 200) response_list = json.loads(response.content.decode(response.charset)) expected_user_info = { 'is_superuser': False, 'username': '******', 'first_name': 'first_name', 'groups': ['Faculty'], 'last_name': 'last_name', 'is_staff': False, 'accounts_id': '0' } returned_user_info = response_list[0] self.assertDictEqual(expected_user_info, returned_user_info)
def test_update_faculty_status_all_command(self): from accounts.utils import create_user user_details = { 'last_name': 'Hart', 'username': '******', 'full_name': None, 'first_name': 'Richard', 'uid': 16207 } #this information probably test_user = create_user(**user_details) self.assertFalse(test_user.groups.filter(name='Faculty').exists()) out = StringIO() call_command('update_faculty_status', '--all', stdout=out) self.assertIn("Success", out.getvalue()) test_user = User.objects.filter(username=user_details['username'])[0] self.assertTrue(test_user.groups.filter(name='Faculty').exists())
def test_user_faculty_group(self): user = User.objects.create_user('john', '*****@*****.**', 'johnpassword') user.save() self.client.force_login(user) response = self.client.get('/api/user/') self.assertEqual(response.status_code, 200) response_list = json.loads(response.content.decode(response.charset)) expected_user_info = {'is_superuser': False, 'username': '******', 'first_name': '', 'groups': [], 'last_name': '', 'is_staff': False, 'accounts_id': None} returned_user_info = response_list[0] self.assertDictEqual(expected_user_info, returned_user_info) test_user = {'last_name': 'last_name', 'username': '******', 'full_name': None, 'first_name': 'first_name', 'uid': '0'} new_user = create_user(**test_user) self.client.force_login(new_user) self.client.get('/api/user/') time.sleep(1) response = self.client.get('/api/user/') self.assertEqual(response.status_code, 200) response_list = json.loads(response.content.decode(response.charset)) expected_user_info = {'is_superuser': False, 'username': '******', 'first_name': 'first_name', 'groups': ['Faculty'], 'last_name': 'last_name', 'is_staff': False, 'accounts_id': '0'} returned_user_info = response_list[0] self.assertDictEqual(expected_user_info, returned_user_info)