class AdminUserTest(TestCase): def setUp(self): self.user = UserFactory() self.user.is_superuser = True self.user.save() def test_can_create_device(self): '''Superuser can create a device.''' assert_true(self.user.has_perm('devices.add_device')) def test_can_delete_device(self): assert_true(self.user.has_perm('devices.delete_device')) def test_can_change_device_status(self): assert_true(self.user.has_perm('user.can_change_device_status'))
def test_can_checkout_headphones_to_user(self): # headphones are created device = HeadphonesFactory(status=Device.CHECKED_IN) # user is created user = UserFactory() # checks out to user self._checkout(device, user.username)
def test_can_checkout_ipad_to_user(self): # an ipad is created device = IpadFactory(status=Device.CHECKED_IN_READY) # a user is created user = UserFactory() # checks out the device to the user self._checkout(device, user.username)
class DevicesAddViewTest(TestCase): def setUp(self): self.user = UserFactory() self.user.is_superuser = True self.user.save() self.client.login(username=self.user.username, password='******') def get_view_name(self): """ Convenience method so that if the name of this url is changed in 'urls.py' you would only have to change this string at this central position. """ return 'devices:add' def test_view(self): response = self.client.get(reverse(self.get_view_name())) self.assertEqual(response.status_code, 200)
class TestAUser(WebTest): def setUp(self): self.user = UserFactory() def tearDown(self): pass def test_can_see_homepage(self): # Rosie goes to homepage res = self.app.get('/') assert_equal(res.status_code, 200) assert_in('Inventory', res) def test_redirected_to_login_if_not_logged_in(self): res = self.app.get('/devices/') res = res.follow() assert_equal(res.status_code, 200) assert_equal(res.request.path, '/') def test_can_login(self): # Rosie goes to root res = self.app.get('/') # Rosie logs in form = res.forms['login_form'] form['username'] = self.user.username form['password'] = '******' res = form.submit() # Follow login res = res.follow() # Follow redirect to devices res = res.follow() assert_equal(res.status_code, 200) assert_true(self.user.is_authenticated()) assert_in('Welcome back, {0}!'.format(self.user.first_name), res) # Rosie is at the inventory page assert_equal(res.request.path, '/devices/') def test_root_redirects_to_inventory_if_logged_in(self): # Rosie is logged in # When she goes to the root, res = self.app.get('/', user=self.user).follow() # She is taken to the inventory page assert_equal(res.request.path, '/devices/')
def setUp(self): self.user = UserFactory() self.user.is_superuser = True self.user.save()
def setUp(self): self.user = UserFactory() self.user.is_superuser = True self.user.save() self.client.login(username=self.user.username, password='******')
def setUp(self): self.admin = UserFactory(first_name="Alan", last_name="Admin") self.admin.is_superuser = True self.admin.save()
class TestASuperUser(WebTest): def setUp(self): self.admin = UserFactory(first_name="Alan", last_name="Admin") self.admin.is_superuser = True self.admin.save() def tearDown(self): pass def test_can_add_ipad(self): # Goes to root (already logged in) res = self.app.get('/', user=self.admin).follow() assert_equal(res.request.path, '/devices/') # There's an Add device button assert_in('Add device', res) res = res.click('Add device') assert_equal(res.request.path, '/devices/add/') assert_in('Add device', res) # Fills in form form = res.forms['device_form'] form.set('device_type', 'ipad') # selects iPad form['description'] = '16GB, white' # forgets to put make # submits res = form.submit() # error message is displayed assert_in('This field is required', res) # enters serial number form['make'] = 'SERW09302 iPad 4' # submits res = form.submit().follow() # device is saved to database assert_equal(Ipad.objects.all().count(), 1) assert_equal(Ipad.objects.latest().description, '16GB, white') # redirected to device index assert_equal(res.request.path, '/devices/') # the new device's name, status, Lender/Lendee, serial number is displayed # headers res.mustcontain('Name', 'Lender', 'Lent to', 'Serial number', 'Updated at') res.mustcontain('iPad', 'Checked in - NOT READY') def test_can_add_headphones(self): # goes to add device page res = self.app.get('/devices/add/', user=self.admin) form = res.forms['device_form'] form.set('device_type', 'headphones') # selects headphones form['description'] = 'iPad headphones' form['make'] = 'iPad headphones' # submits res = form.submit().follow() # saved to db headphones = Headphones.objects.latest() assert_equal(headphones.name, 'Headphones') # redirected to device index assert_equal(res.request.path, '/devices/') def test_can_add_adapter(self): # goes to add device page res = self.app.get('/devices/add/', user=self.admin) # fills out the device form form = res.forms['device_form'] form.set('device_type', 'adapter') # selects adapter form['description'] = 'wall charger/adapter for iPad' form['make'] = "Apple wall charger adapter" # submits res = form.submit().follow() # saved to db adapter = Adapter.objects.latest() assert_in('adapter', adapter.make.lower()) # redirected to device indes assert_equal(res.request.path, '/devices/') def test_can_add_case(self): # goes to add device page res = self.app.get('/devices/add/', user=self.admin) # fills out the device form form = res.forms['device_form'] form.set('device_type', 'case') # selects adapter form['description'] = 'case for iPad (blue)' form['make'] = "iPad Smartcase" # submits res = form.submit().follow() # saved to db case = Case.objects.latest() assert_in('case', case.make.lower()) # redirected to device indes assert_equal(res.request.path, '/devices/') def test_can_see_delete_btn(self): # 3 devices are created device1, device2, device3 = IpadFactory(), IpadFactory(), IpadFactory() assert_equal(Ipad.objects.all().count(), 3) # user goes to index page res = self.app.get('/', user=self.admin).follow() # devices are listed assert_in(device1.serial_number, res) assert_in(device2.serial_number, res) # there is a delete button assert_in('Delete', res) def test_can_create_experimenter(self): # logs in res = self.app.get('/', user=self.admin).follow() # Clicks on create new user res = res.click('Create user') # Fills out form to create a new user form = res.forms['user_form'] # Sets the user type form.set('user_type', 'experimenter') form['first_name'] = 'Jimmy' form['last_name'] = 'Page' form['email'] = '*****@*****.**' form['password1'] = 'ledzep12' form['password2'] = 'ledzep12' # Submits res = form.submit().follow() # Back at the devices page assert_equal(res.request.path, '/devices/') # Sees success message assert_in('Successfully created user: [email protected]', res) # User is saved to database assert_equal(Experimenter.objects.all().count(), 1) new_experimenter = Experimenter.objects.get(user__username='******') assert_equal(new_experimenter.user.get_full_name(), 'Jimmy Page') def test_can_create_reader(self): # logs in res = self.app.get('/', user=self.admin).follow() # Clicks on create new user res = res.click('Create user') # Fills out form to create a new user form = res.forms['user_form'] # Sets the user type form.set('user_type', 'reader') form['first_name'] = 'Jimmy' form['last_name'] = 'Page' form['email'] = '*****@*****.**' form['password1'] = 'ledzep12' form['password2'] = 'ledzep12' # Submits res = form.submit().follow() # Back at the devices page assert_equal(res.request.path, '/devices/') # Sees success message assert_in('Successfully created user: [email protected]', res) # User is saved to database assert_equal(Reader.objects.all().count(), 1) new_reader = Reader.objects.get(user__username='******') assert_equal(new_reader.user.get_full_name(), 'Jimmy Page') def test_can_create_admin(self): # logs in res = self.app.get('/', user=self.admin).follow() # Clicks on create new user res = res.click('Create user') # Fills out form to create a new user form = res.forms['user_form'] # Sets the user type form.set('user_type', 'admin') form['first_name'] = 'Jimmy' form['last_name'] = 'Page' form['email'] = '*****@*****.**' form['password1'] = 'ledzep12' form['password2'] = 'ledzep12' # Submits res = form.submit().follow() # Back at the devices page assert_equal(res.request.path, '/devices/') # Sees success message assert_in('Successfully created user: [email protected]', res) # User is saved to database new_admin = User.objects.get(username='******') assert_equal(new_admin.get_full_name(), 'Jimmy Page') assert_true(new_admin.is_superuser) def test_can_delete_device(self): assert False, 'finish me'
def setUp(self): user = UserFactory(first_name="Ellen", last_name="Experimenter") self.experimenter = ExperimenterFactory(user=user)
def setUp(self): self.user = UserFactory() self.client.login(username=self.user.username, password='******')
def setUp(self): self.user = UserFactory()