Skip to content

Commit

Permalink
add QGIS version in model exported as Python
Browse files Browse the repository at this point in the history
  • Loading branch information
Gustry authored and nyalldawson committed Oct 31, 2019
1 parent 77725c9 commit 3739ac2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
12 changes: 11 additions & 1 deletion src/core/processing/models/qgsprocessingmodelalgorithm.cpp
Expand Up @@ -19,6 +19,7 @@
#include "qgsprocessingregistry.h"
#include "qgsprocessingfeedback.h"
#include "qgsprocessingutils.h"
#include "qgis.h"
#include "qgsxmlutils.h"
#include "qgsexception.h"
#include "qgsvectorlayer.h"
Expand Down Expand Up @@ -362,6 +363,15 @@ void QgsProcessingModelAlgorithm::setSourceFilePath( const QString &sourceFile )

QStringList QgsProcessingModelAlgorithm::asPythonCode( const QgsProcessing::PythonOutputType outputType, const int indentSize ) const
{
QStringList fileDocString;
fileDocString << QStringLiteral( "\"\"\"" );
fileDocString << QStringLiteral( "Model exported as python." );
fileDocString << QStringLiteral( "Name : %1" ).arg( displayName() );
fileDocString << QStringLiteral( "Group : %1" ).arg( group() );
fileDocString << QStringLiteral( "With QGIS : %1" ).arg( Qgis::QGIS_VERSION_INT );
fileDocString << QStringLiteral( "\"\"\"" );
fileDocString << QString();

QStringList lines;
QString indent = QString( ' ' ).repeated( indentSize );
QString currentIndent;
Expand Down Expand Up @@ -680,7 +690,7 @@ QStringList QgsProcessingModelAlgorithm::asPythonCode( const QgsProcessing::Pyth
}
}

lines = importLines + lines;
lines = fileDocString + importLines + lines;
break;
}

Expand Down
10 changes: 8 additions & 2 deletions tests/src/analysis/testqgsprocessing.cpp
Expand Up @@ -7755,7 +7755,13 @@ void TestQgsProcessing::modelExecution()
model2.childAlgorithm( "cx1" ).setDescription( "first step in my model" );
QStringList actualParts = model2.asPythonCode( QgsProcessing::PythonQgsProcessingAlgorithmSubclass, 2 );
QgsDebugMsg( actualParts.join( '\n' ) );
QStringList expectedParts = QStringLiteral( "from qgis.core import QgsProcessing\n"
QStringList expectedParts = QStringLiteral( "\"\"\"\n"
"Model exported as python.\n"
"Name : 2my model\n"
"Group : \n"
"With QGIS : %1\n"
"\"\"\"\n\n"
"from qgis.core import QgsProcessing\n"
"from qgis.core import QgsProcessingAlgorithm\n"
"from qgis.core import QgsProcessingMultiStepFeedback\n"
"from qgis.core import QgsProcessingParameterFeatureSource\n"
Expand Down Expand Up @@ -7833,7 +7839,7 @@ void TestQgsProcessing::modelExecution()
" return ''\n"
"\n"
" def createInstance(self):\n"
" return MyModel()\n" ).split( '\n' );
" return MyModel()\n" ).arg( Qgis::QGIS_VERSION_INT ).split( '\n' );
QCOMPARE( actualParts, expectedParts );
}

Expand Down

0 comments on commit 3739ac2

Please sign in to comment.