@@ -853,3 +853,86 @@ def test_get_project_not_found(self, mock_get_openstack_conn_identity):
853853 name_or_id = "ProjectOne" ,
854854 ignore_missing = False ,
855855 )
856+
857+ def test_create_project_success_with_all_fields (
858+ self , mock_get_openstack_conn_identity
859+ ):
860+ """Test creating a identity project successfully."""
861+ mock_conn = mock_get_openstack_conn_identity
862+
863+ # Create mock project object
864+ mock_project = Mock ()
865+ mock_project .id = "project1111111111111111111111111"
866+ mock_project .name = "ProjectOne"
867+ mock_project .description = "Project One description"
868+ mock_project .is_enabled = True
869+ mock_project .domain_id = "domain1111111111111111111111111"
870+ mock_project .parent_id = "parentproject1111111111111111111"
871+
872+ # Configure mock project.create_project()
873+ mock_conn .identity .create_project .return_value = mock_project
874+
875+ # Test create_project()
876+ identity_tools = self .get_identity_tools ()
877+ result = identity_tools .create_project (
878+ name = "ProjectOne" ,
879+ description = "Project One description" ,
880+ is_enabled = True ,
881+ domain_id = "domain1111111111111111111111111" ,
882+ parent_id = "parentproject1111111111111111111" ,
883+ )
884+
885+ # Verify results
886+ assert result == Project (
887+ id = "project1111111111111111111111111" ,
888+ name = "ProjectOne" ,
889+ description = "Project One description" ,
890+ is_enabled = True ,
891+ domain_id = "domain1111111111111111111111111" ,
892+ parent_id = "parentproject1111111111111111111" ,
893+ )
894+
895+ # Verify mock calls
896+ mock_conn .identity .create_project .assert_called_once_with (
897+ name = "ProjectOne" ,
898+ description = "Project One description" ,
899+ is_enabled = True ,
900+ domain_id = "domain1111111111111111111111111" ,
901+ parent_id = "parentproject1111111111111111111" ,
902+ )
903+
904+ def test_create_project_without_all_fields (
905+ self , mock_get_openstack_conn_identity
906+ ):
907+ """Test creating a identity project without all fields."""
908+ mock_conn = mock_get_openstack_conn_identity
909+
910+ mock_conn .identity .create_project .side_effect = (
911+ exceptions .BadRequestException (
912+ "Field required" ,
913+ )
914+ )
915+
916+ # Test create_project()
917+ identity_tools = self .get_identity_tools ()
918+
919+ with pytest .raises (
920+ exceptions .BadRequestException ,
921+ match = "Field required" ,
922+ ):
923+ identity_tools .create_project (
924+ name = "ProjectOne" ,
925+ description = "Project One description" ,
926+ is_enabled = True ,
927+ domain_id = None ,
928+ parent_id = None ,
929+ )
930+
931+ # Verify mock calls
932+ mock_conn .identity .create_project .assert_called_once_with (
933+ name = "ProjectOne" ,
934+ description = "Project One description" ,
935+ is_enabled = True ,
936+ domain_id = None ,
937+ parent_id = None ,
938+ )
0 commit comments