def test_empty_database(self): sys.argv = ['notused', self.conf_file_path] sys.stdout = StringIO() result = applications() self.assertEqual(result, None) stdout = sys.stdout.getvalue() self.assertEqual(stdout, '')
def test_no_arguments(self): # Replace sys argv and stdout sys.argv = [] sys.stdout = StringIO() result = applications() self.assertEqual(result, 2) stdout = sys.stdout.getvalue() self.assertEqual(stdout, 'You must provide at least one argument\n')
def test_non_empty_database(self): with transaction.manager: user = User(first_name='John', last_name='Doe', email='*****@*****.**') Session.add(user) app1 = Application(user=user, name='Test application 1', main_url='http://example.com', callback_url='http://example.com/callback') Session.add(app1) app2 = Application(user=user, name='Test application 2', main_url='http://2.example.com', callback_url='http://2.example.com/callback') Session.add(app2) sys.argv = ['notused', self.conf_file_path] sys.stdout = StringIO() result = applications() self.assertEqual(result, None) stdout = sys.stdout.getvalue() expected_output = """Test application 1 %(tab)sOwner: John Doe <*****@*****.**> %(tab)sMain URL: http://example.com %(tab)sCallback URL: http://example.com/callback %(tab)sUsers: 0 Test application 2 %(tab)sOwner: John Doe <*****@*****.**> %(tab)sMain URL: http://2.example.com %(tab)sCallback URL: http://2.example.com/callback %(tab)sUsers: 0 """ % {'tab': '\t'} self.assertEqual(stdout, expected_output)
def test_applications(self): # Save sys values old_args = sys.argv[:] old_stdout = sys.stdout # Replace sys argv and stdout sys.argv = [] sys.stdout = StringIO('') # Call applications with no arguments result = applications() self.assertEqual(result, 2) stdout = sys.stdout.getvalue() self.assertEqual(stdout, 'You must provide at least one argument\n') # Call applications with a config file but an empty database sys.argv = ['notused', self.conf_file_path] sys.stdout = StringIO() result = applications() self.assertEqual(result, None) stdout = sys.stdout.getvalue() self.assertEqual(stdout, '') # Add some data to the database u1_id = self.db.users.insert({ 'first_name': 'John', 'last_name': 'Doe', 'email': '*****@*****.**', }) self.db.applications.insert({ 'name': 'Test application 1', 'owner': u1_id, 'main_url': 'http://example.com/', 'callback_url': 'http://example.com/callback', }) self.db.applications.insert({ 'name': 'Test application 2', 'owner': '000000000000000000000000', 'main_url': 'http://2.example.com/', 'callback_url': 'http://2.example.com/callback', }) sys.argv = ['notused', self.conf_file_path] sys.stdout = StringIO() result = applications() self.assertEqual(result, None) stdout = sys.stdout.getvalue() expected_output = """Test application 1 Owner: John Doe <*****@*****.**> Main URL: http://example.com/ Callback URL: http://example.com/callback Users: 0 Test application 2 Owner: Unknown owner (000000000000000000000000) Main URL: http://2.example.com/ Callback URL: http://2.example.com/callback Users: 0 """ self.assertEqual(stdout, expected_output) # Restore sys.values sys.argv = old_args sys.stdout = old_stdout