Example #1
0
class UserRegistrationClientTest(IonTestCase):
    """
    Testing client classes of User Registration
    """
    @defer.inlineCallbacks
    def setUp(self):
        """
        """
        yield self._start_container()

        services = [{
            'name': 'identity_registry',
            'module': 'ion.services.coi.identity_registry',
            'class': 'IdentityRegistryService'
        }]
        supervisor = yield self._spawn_processes(services)

        self.identity_registry_client = IdentityRegistryClient(proc=supervisor)

    @defer.inlineCallbacks
    def tearDown(self):
        yield self.identity_registry_client.clear_identity_registry()
        yield self._stop_container()

    @defer.inlineCallbacks
    def test_register_user(self):
        """
        """

        user = coi_resource_descriptions.IdentityResource.create_new_resource()

        # initialize the user
        user.common_name = "Roger Unwin A13"
        user.country = "US"
        user.trust_provider = "ProtectNetwork"
        user.domain_component = "cilogon"
        user.certificate =  "MIIEMjCCAxqgAwIBAgIBZDANBgkqhkiG9w0BAQUFADBqMRMwEQYKCZImiZPyLGQB\n" + \
                            "GRYDb3JnMRcwFQYKCZImiZPyLGQBGRYHY2lsb2dvbjELMAkGA1UEBhMCVVMxEDAO\n" + \
                            "BgNVBAoTB0NJTG9nb24xGzAZBgNVBAMTEkNJTG9nb24gQmFzaWMgQ0EgMTAeFw0x\n" + \
                            "MDA2MjkxODIxNTlaFw0xMDA2MzAwNjI2NTlaMG8xEzARBgoJkiaJk/IsZAEZEwNv\n" + \
                            "cmcxFzAVBgoJkiaJk/IsZAEZEwdjaWxvZ29uMQswCQYDVQQGEwJVUzEXMBUGA1UE\n" + \
                            "ChMOUHJvdGVjdE5ldHdvcmsxGTAXBgNVBAMTEFJvZ2VyIFVud2luIEExMzYwggEi\n" + \
                            "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0Ci/5ZK1Cta7OaVWGCJb3js/p\n" + \
                            "l+0B4AHXjqOTcSDX/f7U+kful3cKhcPryIV2/bnfh9dYpC4RNHVI32uACH/BCkFG\n" + \
                            "kqsNrLfh7b8g41xBxnREwANI/NEqzwcgNL9mfi8SiY8lEOxGqMYdsNo20QsehRgo\n" + \
                            "SPswGAA0uApdBGkxJGolaPscG7z10WQEd0/HUiAnda8RP0QEPmqPvX/2xJT9sgOg\n" + \
                            "KEU/to+ue/eBuwrlTjy4qn3IsGlwKyckXe9wXnkmck/S9MWvEax17cC4qjTZKYpy\n" + \
                            "/k0NMBVcO+dsqdGuwus4q4IxBHy9P8kq3QAQoJies11RspTCQ61GuVwCu1V7AgMB\n" + \
                            "AAGjgd0wgdowDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBLAwEwYDVR0lBAww\n" + \
                            "CgYIKwYBBQUHAwIwGAYDVR0gBBEwDzANBgsrBgEEAYKRNgECATBqBgNVHR8EYzBh\n" + \
                            "MC6gLKAqhihodHRwOi8vY3JsLmNpbG9nb24ub3JnL2NpbG9nb24tYmFzaWMuY3Js\n" + \
                            "MC+gLaArhilodHRwOi8vY3JsLmRvZWdyaWRzLm9yZy9jaWxvZ29uLWJhc2ljLmNy\n" + \
                            "bDAfBgNVHREEGDAWgRRpdHNhZ3JlZW4xQHlhaG9vLmNvbTANBgkqhkiG9w0BAQUF\n" + \
                            "AAOCAQEAT0uKY2BEYPhozSBzRrOgY9gw5yXczbq3kEx+kxF1jXAeMMD3u2i1apZ3\n" + \
                            "dIS0FzCj1b3y8tfBr5FNde//axLZfxSo3kO9djlUrfqJnycaGevc2zMD8+GIst0J\n" + \
                            "OB+3GClYYpagLkRbkkLX3hU/qfb4c4DnHVmZOaXKsOKETB7xcxWimIlL47O2XGNt\n" + \
                            "PEUP0RzlJTkgD7LeSS0I+9SlFe0Wdb6knkMJ4afT5xLr2FXkcU9VRqGu8Gr2A4ha\n" + \
                            "CKLqTUDKFOUp5i16pLY4p6Ahn0IcFWOyWJLQ70mUJz+WVqCVXjkfMpKbrMgcKZNC\n" + \
                            "9kgKHA8cRnz97xbQIcDdeGU9tCAuGQ=="
        user.rsa_private_key = "MIIEowIBAAKCAQEA9Aov+WStQrWuzmlVhgiW947P6ZftAeAB146jk3Eg1/3+1PpH\n" + \
                            "7pd3CoXD68iFdv2534fXWKQuETR1SN9rgAh/wQpBRpKrDay34e2/IONcQcZ0RMAD\n" + \
                            "SPzRKs8HIDS/Zn4vEomPJRDsRqjGHbDaNtELHoUYKEj7MBgANLgKXQRpMSRqJWj7\n" + \
                            "HBu89dFkBHdPx1IgJ3WvET9EBD5qj71/9sSU/bIDoChFP7aPrnv3gbsK5U48uKp9\n" + \
                            "yLBpcCsnJF3vcF55JnJP0vTFrxGsde3AuKo02SmKcv5NDTAVXDvnbKnRrsLrOKuC\n" + \
                            "MQR8vT/JKt0AEKCYnrNdUbKUwkOtRrlcArtVewIDAQABAoIBACkHFW2uOVq/xLW7\n" + \
                            "C7/O7eKMxfOVsSjhii29M070c/scHp2bvkAkgsToHDolqhqJKZik89VZNM17rkQk\n" + \
                            "G6SYyTGhEbxVqCBSa0+2cq2Ky9XbEW0FgwfgSSITUDVf6NXIXQ2WxtQKdk6izTvs\n" + \
                            "oaMZne7xnVAYhPJe9pnmXweoWC8Ehiu2MrSYQHsgc7A4zSHvKscvdGkGYif6bCVx\n" + \
                            "bi1qWvEJyIlQqRW1PmtI65tmf7Y3yOnDJYBs5hQ7nSVgSFIwox8L9h1QhU72E9kN\n" + \
                            "aqMakS5qS/PnTilB17xfbrT6Gx9yTBlm4Zyc2JgqIRjICRYetYRzQYRVv8v262D8\n" + \
                            "nHIv8CECgYEA/3RDBV9mgXwrN9ol+ICfG4SeJHzTfVJjGB+GsPIZ0yUQ3rpKBVvA\n" + \
                            "/eXBfEPL+ruDMSt5y/KnqXQu3JhiRP+uOgfwUK6GMRAJS8XkVr98nM/cW646dnvQ\n" + \
                            "k1S9LOmqPkiTq6VnOJIzwmTtUCtwpqwU8ZbuZHKagGhMCVGzrCJgC0MCgYEA9I+u\n" + \
                            "hhlkZaMrzLOTtti+5dGVtBy+avSqkp2f4oQG/Z62NGSnxzNqELnriErZkYR3d4Kv\n" + \
                            "zj0j+CO5V9xLpYzHusgYk7jLRcZQSyVjnkkrorOT2qeBqgl/FYSoD64+Eydq+NsV\n" + \
                            "7xwWFCWbcmDAFxPJU2eqES85cQSiAzi6d1ndfWkCgYAXcBZaHter17WraTOEqmBu\n" + \
                            "yOstk9pfrDh1VScpgv0Fl2gF13fFKBb79KGdAidr+Npfn4qMQNZLQOKv0Ldrdz4I\n" + \
                            "CwRskqazR7JipmR95RHM3XFtY/3vMwr/CY5V2ZaKImSSIhnnYdqn4lS3v1SVpkJB\n" + \
                            "rERxKOauE2OukzV1/K1tOwKBgQCAZRrETnp2Hdd17eWkPmDiuUj2OY0DDBatSNHT\n" + \
                            "E2u0JWoVUa8AFw8dXu64LEvTaQ9rkBIKnfDParn41bBlZubJOholHASkSjyHZ0bI\n" + \
                            "qDOfhNYgGocppTiyLGYrbVgrqCsyIZt/YGh7BU96Gi9fLkUpY6hWw0tN+ZexR0wm\n" + \
                            "Mujk2QKBgAugycaF1zFmK7UOg9/thfY07uNgnYRFLDCYB4G5f0xeagzYp+SEt3oO\n" + \
                            "q23C/NhdxAQH1rfUptZXM1rnVyM+ycI3IulnAiJ96AD5FQX0PRWmo2DtHgpZ21Sh\n" + \
                            "cZGidYECf6XdGxhSsf2C81LcDdk99KlPd7fkqLWOs5cAwlR4r3CY"
        user.expiration_date = "Tue Jun 29 23:32:16 PDT 2010"
        # These are the fields we prompt the user for during registration
        user.first_name = "Roger"
        user.last_name = "Unwin"
        user.phone = "8588675309"
        user.fax = "6198675309"
        user.email = "*****@*****.**"
        user.organization = "University of California San Diego"
        user.department = "San Diego Supercomputing Center"
        user.title = "Deep Sea Submarine Captain"

        user = yield self.identity_registry_client.register_user(user)

        ooi_id = user.reference()
        print str(ooi_id.RegistryIdentity
                  ) + "******************************************************"
        # load the user back
        user0 = yield self.identity_registry_client.get_user(ooi_id)

        # Test that we got a Person back
        self.assertNotEqual(user0, None)
        self.assertEqual(user0.common_name, "Roger Unwin A13")

        # Test the ooi_id was properly set within the Person object
        self.assertEqual(user0.reference(), ooi_id)

        # Test that updates work
        user0.common_name = "Roger Unwin CHANGED"
        user0 = yield self.identity_registry_client.update_user(user0)
        ooi_id = user0.reference()

        user1 = yield self.identity_registry_client.get_user(ooi_id)
        self.assertEqual("Roger Unwin CHANGED", user1.common_name)

        # Test for user not found handled properly.
        ooi_id.RegistryIdentity = "bogus-ooi_id"
        result = yield self.identity_registry_client.get_user(ooi_id)
        self.assertEqual(result, None)

        # Test if we can find the user we have stuffed in.
        user_description = coi_resource_descriptions.IdentityResource()
        user_description.first_name = 'oger'

        users1 = yield self.identity_registry_client.find_users(
            user_description, regex=True)
        self.assertEqual(len(users1), 1)  # should only return 1 match
        self.assertEqual("Roger Unwin CHANGED", users1[0].common_name)

        # Test if we can set the life cycle state
        self.assertEqual(str(user1.lifecycle), 'new')  # Should start as new

        ooi_id = user0.reference(head=True)

        result = yield self.identity_registry_client.set_identity_lcstate_retired(
            ooi_id)  # Wishful thinking Roger!
        user2 = yield self.identity_registry_client.get_user(ooi_id)
        self.assertEqual(str(user2.lifecycle),
                         'retired')  # Should be retired now
class UserRegistrationClientTest(IonTestCase):
    """
    Testing client classes of User Registration
    """
    
    @defer.inlineCallbacks
    def setUp(self):
        """
        """
        yield self._start_container()
        
        services = [{'name':'identity_registry','module':'ion.services.coi.identity_registry','class':'IdentityRegistryService'}]
        supervisor = yield self._spawn_processes(services)
        
        self.identity_registry_client = IdentityRegistryClient(proc=supervisor)
        
        
    @defer.inlineCallbacks
    def tearDown(self):
        yield self.identity_registry_client.clear_identity_registry()
        yield self._stop_container()
        
    @defer.inlineCallbacks
    def test_register_user(self):
        """
        """
        
        
        user = coi_resource_descriptions.IdentityResource.create_new_resource()

        # initialize the user
        user.common_name = "Roger Unwin A13"
        user.country = "US" 
        user.trust_provider = "ProtectNetwork"
        user.domain_component = "cilogon"
        user.certificate =  "MIIEMjCCAxqgAwIBAgIBZDANBgkqhkiG9w0BAQUFADBqMRMwEQYKCZImiZPyLGQB\n" + \
                            "GRYDb3JnMRcwFQYKCZImiZPyLGQBGRYHY2lsb2dvbjELMAkGA1UEBhMCVVMxEDAO\n" + \
                            "BgNVBAoTB0NJTG9nb24xGzAZBgNVBAMTEkNJTG9nb24gQmFzaWMgQ0EgMTAeFw0x\n" + \
                            "MDA2MjkxODIxNTlaFw0xMDA2MzAwNjI2NTlaMG8xEzARBgoJkiaJk/IsZAEZEwNv\n" + \
                            "cmcxFzAVBgoJkiaJk/IsZAEZEwdjaWxvZ29uMQswCQYDVQQGEwJVUzEXMBUGA1UE\n" + \
                            "ChMOUHJvdGVjdE5ldHdvcmsxGTAXBgNVBAMTEFJvZ2VyIFVud2luIEExMzYwggEi\n" + \
                            "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0Ci/5ZK1Cta7OaVWGCJb3js/p\n" + \
                            "l+0B4AHXjqOTcSDX/f7U+kful3cKhcPryIV2/bnfh9dYpC4RNHVI32uACH/BCkFG\n" + \
                            "kqsNrLfh7b8g41xBxnREwANI/NEqzwcgNL9mfi8SiY8lEOxGqMYdsNo20QsehRgo\n" + \
                            "SPswGAA0uApdBGkxJGolaPscG7z10WQEd0/HUiAnda8RP0QEPmqPvX/2xJT9sgOg\n" + \
                            "KEU/to+ue/eBuwrlTjy4qn3IsGlwKyckXe9wXnkmck/S9MWvEax17cC4qjTZKYpy\n" + \
                            "/k0NMBVcO+dsqdGuwus4q4IxBHy9P8kq3QAQoJies11RspTCQ61GuVwCu1V7AgMB\n" + \
                            "AAGjgd0wgdowDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBLAwEwYDVR0lBAww\n" + \
                            "CgYIKwYBBQUHAwIwGAYDVR0gBBEwDzANBgsrBgEEAYKRNgECATBqBgNVHR8EYzBh\n" + \
                            "MC6gLKAqhihodHRwOi8vY3JsLmNpbG9nb24ub3JnL2NpbG9nb24tYmFzaWMuY3Js\n" + \
                            "MC+gLaArhilodHRwOi8vY3JsLmRvZWdyaWRzLm9yZy9jaWxvZ29uLWJhc2ljLmNy\n" + \
                            "bDAfBgNVHREEGDAWgRRpdHNhZ3JlZW4xQHlhaG9vLmNvbTANBgkqhkiG9w0BAQUF\n" + \
                            "AAOCAQEAT0uKY2BEYPhozSBzRrOgY9gw5yXczbq3kEx+kxF1jXAeMMD3u2i1apZ3\n" + \
                            "dIS0FzCj1b3y8tfBr5FNde//axLZfxSo3kO9djlUrfqJnycaGevc2zMD8+GIst0J\n" + \
                            "OB+3GClYYpagLkRbkkLX3hU/qfb4c4DnHVmZOaXKsOKETB7xcxWimIlL47O2XGNt\n" + \
                            "PEUP0RzlJTkgD7LeSS0I+9SlFe0Wdb6knkMJ4afT5xLr2FXkcU9VRqGu8Gr2A4ha\n" + \
                            "CKLqTUDKFOUp5i16pLY4p6Ahn0IcFWOyWJLQ70mUJz+WVqCVXjkfMpKbrMgcKZNC\n" + \
                            "9kgKHA8cRnz97xbQIcDdeGU9tCAuGQ=="
        user.rsa_private_key = "MIIEowIBAAKCAQEA9Aov+WStQrWuzmlVhgiW947P6ZftAeAB146jk3Eg1/3+1PpH\n" + \
                            "7pd3CoXD68iFdv2534fXWKQuETR1SN9rgAh/wQpBRpKrDay34e2/IONcQcZ0RMAD\n" + \
                            "SPzRKs8HIDS/Zn4vEomPJRDsRqjGHbDaNtELHoUYKEj7MBgANLgKXQRpMSRqJWj7\n" + \
                            "HBu89dFkBHdPx1IgJ3WvET9EBD5qj71/9sSU/bIDoChFP7aPrnv3gbsK5U48uKp9\n" + \
                            "yLBpcCsnJF3vcF55JnJP0vTFrxGsde3AuKo02SmKcv5NDTAVXDvnbKnRrsLrOKuC\n" + \
                            "MQR8vT/JKt0AEKCYnrNdUbKUwkOtRrlcArtVewIDAQABAoIBACkHFW2uOVq/xLW7\n" + \
                            "C7/O7eKMxfOVsSjhii29M070c/scHp2bvkAkgsToHDolqhqJKZik89VZNM17rkQk\n" + \
                            "G6SYyTGhEbxVqCBSa0+2cq2Ky9XbEW0FgwfgSSITUDVf6NXIXQ2WxtQKdk6izTvs\n" + \
                            "oaMZne7xnVAYhPJe9pnmXweoWC8Ehiu2MrSYQHsgc7A4zSHvKscvdGkGYif6bCVx\n" + \
                            "bi1qWvEJyIlQqRW1PmtI65tmf7Y3yOnDJYBs5hQ7nSVgSFIwox8L9h1QhU72E9kN\n" + \
                            "aqMakS5qS/PnTilB17xfbrT6Gx9yTBlm4Zyc2JgqIRjICRYetYRzQYRVv8v262D8\n" + \
                            "nHIv8CECgYEA/3RDBV9mgXwrN9ol+ICfG4SeJHzTfVJjGB+GsPIZ0yUQ3rpKBVvA\n" + \
                            "/eXBfEPL+ruDMSt5y/KnqXQu3JhiRP+uOgfwUK6GMRAJS8XkVr98nM/cW646dnvQ\n" + \
                            "k1S9LOmqPkiTq6VnOJIzwmTtUCtwpqwU8ZbuZHKagGhMCVGzrCJgC0MCgYEA9I+u\n" + \
                            "hhlkZaMrzLOTtti+5dGVtBy+avSqkp2f4oQG/Z62NGSnxzNqELnriErZkYR3d4Kv\n" + \
                            "zj0j+CO5V9xLpYzHusgYk7jLRcZQSyVjnkkrorOT2qeBqgl/FYSoD64+Eydq+NsV\n" + \
                            "7xwWFCWbcmDAFxPJU2eqES85cQSiAzi6d1ndfWkCgYAXcBZaHter17WraTOEqmBu\n" + \
                            "yOstk9pfrDh1VScpgv0Fl2gF13fFKBb79KGdAidr+Npfn4qMQNZLQOKv0Ldrdz4I\n" + \
                            "CwRskqazR7JipmR95RHM3XFtY/3vMwr/CY5V2ZaKImSSIhnnYdqn4lS3v1SVpkJB\n" + \
                            "rERxKOauE2OukzV1/K1tOwKBgQCAZRrETnp2Hdd17eWkPmDiuUj2OY0DDBatSNHT\n" + \
                            "E2u0JWoVUa8AFw8dXu64LEvTaQ9rkBIKnfDParn41bBlZubJOholHASkSjyHZ0bI\n" + \
                            "qDOfhNYgGocppTiyLGYrbVgrqCsyIZt/YGh7BU96Gi9fLkUpY6hWw0tN+ZexR0wm\n" + \
                            "Mujk2QKBgAugycaF1zFmK7UOg9/thfY07uNgnYRFLDCYB4G5f0xeagzYp+SEt3oO\n" + \
                            "q23C/NhdxAQH1rfUptZXM1rnVyM+ycI3IulnAiJ96AD5FQX0PRWmo2DtHgpZ21Sh\n" + \
                            "cZGidYECf6XdGxhSsf2C81LcDdk99KlPd7fkqLWOs5cAwlR4r3CY"
        user.expiration_date = "Tue Jun 29 23:32:16 PDT 2010"
        # These are the fields we prompt the user for during registration
        user.first_name = "Roger"
        user.last_name = "Unwin"
        user.phone = "8588675309"
        user.fax = "6198675309"
        user.email = "*****@*****.**"
        user.organization = "University of California San Diego"
        user.department = "San Diego Supercomputing Center"
        user.title = "Deep Sea Submarine Captain"
        
        
    
        user = yield self.identity_registry_client.register_user(user)

        ooi_id = user.reference()
        print str(ooi_id.RegistryIdentity) + "******************************************************"
        # load the user back
        user0 = yield self.identity_registry_client.get_user(ooi_id)
        
        # Test that we got a Person back
        self.assertNotEqual(user0, None)
        self.assertEqual(user0.common_name, "Roger Unwin A13")
        
        # Test the ooi_id was properly set within the Person object
        self.assertEqual(user0.reference(), ooi_id)
        
        # Test that updates work
        user0.common_name = "Roger Unwin CHANGED"
        user0 = yield self.identity_registry_client.update_user(user0)
        ooi_id = user0.reference()
        
        
        user1 = yield self.identity_registry_client.get_user(ooi_id)
        self.assertEqual("Roger Unwin CHANGED", user1.common_name)
        
        # Test for user not found handled properly.
        ooi_id.RegistryIdentity = "bogus-ooi_id"
        result = yield self.identity_registry_client.get_user(ooi_id)
        self.assertEqual(result, None)
        
        # Test if we can find the user we have stuffed in.
        user_description = coi_resource_descriptions.IdentityResource()
        user_description.first_name = 'oger'
        
        users1 = yield self.identity_registry_client.find_users(user_description,regex=True)
        self.assertEqual(len(users1), 1) # should only return 1 match
        self.assertEqual("Roger Unwin CHANGED", users1[0].common_name)
        
        # Test if we can set the life cycle state
        self.assertEqual(str(user1.lifecycle), 'new') # Should start as new
        
        ooi_id = user0.reference(head=True)
        
        result = yield self.identity_registry_client.set_identity_lcstate_retired(ooi_id) # Wishful thinking Roger!
        user2 = yield self.identity_registry_client.get_user(ooi_id)
        self.assertEqual(str(user2.lifecycle), 'retired') # Should be retired now