def test_get(self): worlds = [ mock.Mock(resource_name='runuser', json={ 'id': 1, 'run': 1, 'world': 1 }), mock.Mock(resource_name='runuser', json={ 'id': 2, 'run': 2, 'world': 2 }), mock.Mock(resource_name='runuser', json={ 'id': 3, 'run': 2, 'world': 2 }), ] manager = ScopeManager(*worlds) self.assertEqual(manager.get(run=1), worlds[0]) self.assertRaises(manager.MultipleScopesFound, manager.get, run=2) self.assertRaises(manager.ScopeNotFound, manager.get, run=3)
def test_nonindexed_filter(self): runusers = [ mock.Mock(resource_name='runuser', json={ 'id': 1, 'run': 1, 'world': 1, 'role': 1 }), mock.Mock(resource_name='runuser', json={ 'id': 2, 'run': 2, 'world': 2, 'role': 2 }), mock.Mock(resource_name='runuser', json={ 'id': 3, 'run': 2, 'world': 2, 'role': 2 }), ] manager = ScopeManager(*runusers) self.assertEqual(manager.filter(role=1).count(), 1) self.assertEqual(manager.filter(role=2).count(), 2) self.assertEqual(manager.filter(role=3).count(), 0) self.assertFalse(runusers[0] in manager.filter(role=2))
def test_for_user(self): user1 = mock.Mock(json={ 'id': 1, 'world': 1 }, pk=1, runuser=mock.Mock(leader=False)) user2 = mock.Mock(json={ 'id': 2, 'world': 1 }, pk=2, runuser=mock.Mock(leader=False)) user3 = mock.Mock(json={ 'id': 3, 'world': 2 }, pk=3, runuser=mock.Mock(leader=False)) user4 = mock.Mock(json={ 'id': 4, 'world': 2 }, pk=4, runuser=mock.Mock(leader=False)) get_user_ids_12 = mock.Mock(return_value=[1, 2]) my_12 = mock.Mock(get_user_ids=get_user_ids_12) get_user_ids_23 = mock.Mock(return_value=[2, 3]) my_23 = mock.Mock(get_user_ids=get_user_ids_23) worlds = [ mock.Mock(my=my_12, json={ 'id': 1, 'run': 1 }, pk=1, resource_name='world'), mock.Mock(my=my_23, json={ 'id': 2, 'run': 1 }, pk=2, resource_name='world'), ] manager = ScopeManager(*worlds) self.assertEqual(manager.for_user(user1), [worlds[0]]) self.assertEqual(manager.for_user(user1).count(), 1) self.assertEqual(manager.for_user(user2), worlds) self.assertEqual(manager.for_user(user2).count(), 2) self.assertEqual(manager.for_user(user3), [worlds[1]]) self.assertEqual(manager.for_user(user3).count(), 1) self.assertEqual(manager.for_user(user4), []) self.assertEqual(manager.for_user(user4).count(), 0)
def test_count(self): scopes = [ mock.Mock(resource_name='period', json={ 'id': i, 'scenario': 1 }) for i in range(5) ] manager = ScopeManager(*scopes) self.assertEqual(manager.count(), 5)
def test_last(self): scopes = [ mock.Mock(idx=i, resource_name='period', json={ 'id': i, 'scenario': 1 }) for i in range(5) ] manager = ScopeManager(*scopes) self.assertEqual(manager.last(), scopes[-1]) self.assertEqual(manager.last().idx, 4)
def test_add(self): scopes = [ mock.Mock(resource_name='period', json={ 'id': i, 'scenario': 1 }) for i in range(2) ] scopes2 = [ mock.Mock(resource_name='period', json={ 'id': i, 'scenario': 1 }) for i in range(3, 6) ] manager = ScopeManager(*scopes) manager2 = ScopeManager(*scopes2) total = manager + manager2 self.assertEqual(total.count(), 5)
def test_in(self): scopes = [ mock.Mock(resource_name='period', json={ 'id': i, 'scenario': 1 }) for i in range(5) ] manager = ScopeManager(*scopes) scope = scopes[1] self.assertTrue(scope in manager)
def test_iter(self): scopes = [ mock.Mock(resource_name='period', json={ 'id': i, 'scenario': 1 }) for i in range(5) ] manager = ScopeManager(*scopes) lst = [scope for scope in manager] self.assertEqual(len(lst), 5)
def test_remove(self): scopes = [ mock.Mock(resource_name='period', json={ 'id': i, 'scenario': 1 }) for i in range(5) ] manager = ScopeManager(*scopes) self.assertEqual(manager.count(), 5) scope = scopes[1] manager.remove(scope) self.assertEqual(manager.count(), 4) self.assertFalse(scope in manager)
def test_add_list(self): scopes = [ mock.Mock(resource_name='period', json={ 'id': i, 'scenario': 1 }) for i in range(2) ] scopes2 = [ mock.Mock(resource_name='period', json={ 'id': i, 'scenario': 1 }) for i in range(3, 6) ] manager2 = ScopeManager(*scopes2) total = scopes + manager2 self.assertTrue(isinstance(total, list)) self.assertEqual(len(total), 5) total = manager2 + scopes self.assertTrue(isinstance(total, ScopeManager)) self.assertEqual(total.count(), 5)