Skip to content

Commit d05f95f

Browse files
committedMay 10, 2018
[processing] Ensure unset parameters are translated to Python
None values when representing parameters as pythong strings
1 parent e55bb55 commit d05f95f

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed
 

‎src/core/processing/qgsprocessingparameters.cpp

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,6 +1225,9 @@ bool QgsProcessingParameterDefinition::checkValueIsAcceptable( const QVariant &i
12251225

12261226
QString QgsProcessingParameterDefinition::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
12271227
{
1228+
if ( !value.isValid() )
1229+
return QStringLiteral( "None" );
1230+
12281231
if ( value.canConvert<QgsProperty>() )
12291232
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
12301233

@@ -1291,6 +1294,9 @@ QgsProcessingParameterDefinition *QgsProcessingParameterBoolean::clone() const
12911294

12921295
QString QgsProcessingParameterBoolean::valueAsPythonString( const QVariant &val, QgsProcessingContext & ) const
12931296
{
1297+
if ( !val.isValid() )
1298+
return QStringLiteral( "None" );
1299+
12941300
if ( val.canConvert<QgsProperty>() )
12951301
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
12961302
return val.toBool() ? QStringLiteral( "True" ) : QStringLiteral( "False" );
@@ -1344,6 +1350,9 @@ bool QgsProcessingParameterCrs::checkValueIsAcceptable( const QVariant &input, Q
13441350

13451351
QString QgsProcessingParameterCrs::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
13461352
{
1353+
if ( !value.isValid() )
1354+
return QStringLiteral( "None" );
1355+
13471356
if ( value.canConvert<QgsProperty>() )
13481357
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
13491358

@@ -1405,6 +1414,9 @@ bool QgsProcessingParameterMapLayer::checkValueIsAcceptable( const QVariant &inp
14051414

14061415
QString QgsProcessingParameterMapLayer::valueAsPythonString( const QVariant &val, QgsProcessingContext &context ) const
14071416
{
1417+
if ( !val.isValid() )
1418+
return QStringLiteral( "None" );
1419+
14081420
if ( val.canConvert<QgsProperty>() )
14091421
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
14101422

@@ -1487,6 +1499,9 @@ bool QgsProcessingParameterExtent::checkValueIsAcceptable( const QVariant &input
14871499

14881500
QString QgsProcessingParameterExtent::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
14891501
{
1502+
if ( !value.isValid() )
1503+
return QStringLiteral( "None" );
1504+
14901505
if ( value.canConvert<QgsProperty>() )
14911506
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
14921507

@@ -1574,6 +1589,9 @@ bool QgsProcessingParameterPoint::checkValueIsAcceptable( const QVariant &input,
15741589

15751590
QString QgsProcessingParameterPoint::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
15761591
{
1592+
if ( !value.isValid() )
1593+
return QStringLiteral( "None" );
1594+
15771595
if ( value.canConvert<QgsProperty>() )
15781596
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
15791597

@@ -1714,6 +1732,9 @@ bool QgsProcessingParameterMatrix::checkValueIsAcceptable( const QVariant &input
17141732

17151733
QString QgsProcessingParameterMatrix::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
17161734
{
1735+
if ( !value.isValid() )
1736+
return QStringLiteral( "None" );
1737+
17171738
if ( value.canConvert<QgsProperty>() )
17181739
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
17191740

@@ -1874,6 +1895,9 @@ bool QgsProcessingParameterMultipleLayers::checkValueIsAcceptable( const QVarian
18741895

18751896
QString QgsProcessingParameterMultipleLayers::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
18761897
{
1898+
if ( !value.isValid() )
1899+
return QStringLiteral( "None" );
1900+
18771901
if ( value.canConvert<QgsProperty>() )
18781902
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
18791903

@@ -2025,6 +2049,9 @@ bool QgsProcessingParameterNumber::checkValueIsAcceptable( const QVariant &input
20252049

20262050
QString QgsProcessingParameterNumber::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
20272051
{
2052+
if ( !value.isValid() )
2053+
return QStringLiteral( "None" );
2054+
20282055
if ( value.canConvert<QgsProperty>() )
20292056
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
20302057

@@ -2155,6 +2182,9 @@ bool QgsProcessingParameterRange::checkValueIsAcceptable( const QVariant &input,
21552182

21562183
QString QgsProcessingParameterRange::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
21572184
{
2185+
if ( !value.isValid() )
2186+
return QStringLiteral( "None" );
2187+
21582188
if ( value.canConvert<QgsProperty>() )
21592189
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
21602190

@@ -2241,6 +2271,9 @@ bool QgsProcessingParameterRasterLayer::checkValueIsAcceptable( const QVariant &
22412271

22422272
QString QgsProcessingParameterRasterLayer::valueAsPythonString( const QVariant &val, QgsProcessingContext &context ) const
22432273
{
2274+
if ( !val.isValid() )
2275+
return QStringLiteral( "None" );
2276+
22442277
if ( val.canConvert<QgsProperty>() )
22452278
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
22462279

@@ -2330,6 +2363,9 @@ bool QgsProcessingParameterEnum::checkValueIsAcceptable( const QVariant &input,
23302363

23312364
QString QgsProcessingParameterEnum::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
23322365
{
2366+
if ( !value.isValid() )
2367+
return QStringLiteral( "None" );
2368+
23332369
if ( value.canConvert<QgsProperty>() )
23342370
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
23352371

@@ -2443,6 +2479,9 @@ QgsProcessingParameterDefinition *QgsProcessingParameterString::clone() const
24432479

24442480
QString QgsProcessingParameterString::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
24452481
{
2482+
if ( !value.isValid() )
2483+
return QStringLiteral( "None" );
2484+
24462485
if ( value.canConvert<QgsProperty>() )
24472486
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
24482487

@@ -2525,6 +2564,9 @@ QgsProcessingParameterDefinition *QgsProcessingParameterExpression::clone() cons
25252564

25262565
QString QgsProcessingParameterExpression::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
25272566
{
2567+
if ( !value.isValid() )
2568+
return QStringLiteral( "None" );
2569+
25282570
if ( value.canConvert<QgsProperty>() )
25292571
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
25302572

@@ -2623,6 +2665,9 @@ bool QgsProcessingParameterVectorLayer::checkValueIsAcceptable( const QVariant &
26232665

26242666
QString QgsProcessingParameterVectorLayer::valueAsPythonString( const QVariant &val, QgsProcessingContext &context ) const
26252667
{
2668+
if ( !val.isValid() )
2669+
return QStringLiteral( "None" );
2670+
26262671
if ( val.canConvert<QgsProperty>() )
26272672
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
26282673

@@ -2723,6 +2768,9 @@ bool QgsProcessingParameterField::checkValueIsAcceptable( const QVariant &input,
27232768

27242769
QString QgsProcessingParameterField::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
27252770
{
2771+
if ( !value.isValid() )
2772+
return QStringLiteral( "None" );
2773+
27262774
if ( value.canConvert<QgsProperty>() )
27272775
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
27282776

@@ -2942,6 +2990,9 @@ bool QgsProcessingParameterFeatureSource::checkValueIsAcceptable( const QVariant
29422990

29432991
QString QgsProcessingParameterFeatureSource::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
29442992
{
2993+
if ( !value.isValid() )
2994+
return QStringLiteral( "None" );
2995+
29452996
if ( value.canConvert<QgsProperty>() )
29462997
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
29472998

@@ -3120,6 +3171,9 @@ bool QgsProcessingParameterFeatureSink::checkValueIsAcceptable( const QVariant &
31203171

31213172
QString QgsProcessingParameterFeatureSink::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
31223173
{
3174+
if ( !value.isValid() )
3175+
return QStringLiteral( "None" );
3176+
31233177
if ( value.canConvert<QgsProperty>() )
31243178
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
31253179

@@ -3322,6 +3376,9 @@ bool QgsProcessingParameterRasterDestination::checkValueIsAcceptable( const QVar
33223376

33233377
QString QgsProcessingParameterRasterDestination::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
33243378
{
3379+
if ( !value.isValid() )
3380+
return QStringLiteral( "None" );
3381+
33253382
if ( value.canConvert<QgsProperty>() )
33263383
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
33273384

@@ -3415,6 +3472,9 @@ bool QgsProcessingParameterFileDestination::checkValueIsAcceptable( const QVaria
34153472

34163473
QString QgsProcessingParameterFileDestination::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
34173474
{
3475+
if ( !value.isValid() )
3476+
return QStringLiteral( "None" );
3477+
34183478
if ( value.canConvert<QgsProperty>() )
34193479
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
34203480

@@ -3628,6 +3688,9 @@ bool QgsProcessingParameterVectorDestination::checkValueIsAcceptable( const QVar
36283688

36293689
QString QgsProcessingParameterVectorDestination::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
36303690
{
3691+
if ( !value.isValid() )
3692+
return QStringLiteral( "None" );
3693+
36313694
if ( value.canConvert<QgsProperty>() )
36323695
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
36333696

@@ -3800,6 +3863,9 @@ bool QgsProcessingParameterBand::checkValueIsAcceptable( const QVariant &input,
38003863

38013864
QString QgsProcessingParameterBand::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
38023865
{
3866+
if ( !value.isValid() )
3867+
return QStringLiteral( "None" );
3868+
38033869
if ( value.canConvert<QgsProperty>() )
38043870
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
38053871

‎tests/src/analysis/testqgsprocessing.cpp

100644100755
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1889,6 +1889,7 @@ void TestQgsProcessing::parameterBoolean()
18891889
QCOMPARE( def->valueAsPythonString( true, context ), QStringLiteral( "True" ) );
18901890
QCOMPARE( def->valueAsPythonString( "false", context ), QStringLiteral( "False" ) );
18911891
QCOMPARE( def->valueAsPythonString( "true", context ), QStringLiteral( "True" ) );
1892+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
18921893
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProperty::fromExpression( "\"a\"=1" ) ), context ), QStringLiteral( "QgsProperty.fromExpression('\"a\"=1')" ) );
18931894

18941895
QString code = def->asScriptCode();
@@ -2066,6 +2067,7 @@ void TestQgsProcessing::parameterCrs()
20662067
params.insert( "non_optional", QString( "i'm not a crs, and nothing you can do will make me one" ) );
20672068
QVERIFY( !QgsProcessingParameters::parameterAsCrs( def.get(), params, context ).isValid() );
20682069

2070+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
20692071
QCOMPARE( def->valueAsPythonString( "EPSG:12003", context ), QStringLiteral( "'EPSG:12003'" ) );
20702072
QCOMPARE( def->valueAsPythonString( "ProjectCrs", context ), QStringLiteral( "'ProjectCrs'" ) );
20712073
QCOMPARE( def->valueAsPythonString( raster1, context ), QString( "'" ) + testDataDir + QStringLiteral( "tenbytenraster.asc'" ) );
@@ -2179,6 +2181,7 @@ void TestQgsProcessing::parameterLayer()
21792181
params.insert( "non_optional", QVariant::fromValue( v1 ) );
21802182
QCOMPARE( QgsProcessingParameters::parameterAsLayer( def.get(), params, context ), v1 );
21812183

2184+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
21822185
QCOMPARE( def->valueAsPythonString( raster1, context ), QString( "'" ) + testDataDir + QStringLiteral( "tenbytenraster.asc'" ) );
21832186
QCOMPARE( def->valueAsPythonString( r1->id(), context ), QString( "'" ) + testDataDir + QStringLiteral( "tenbytenraster.asc'" ) );
21842187
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( r1 ), context ), QString( "'" ) + testDataDir + QStringLiteral( "tenbytenraster.asc'" ) );
@@ -2419,6 +2422,7 @@ void TestQgsProcessing::parameterExtent()
24192422
QGSCOMPARENEAR( ext.yMinimum(), 244963, 100 );
24202423
QGSCOMPARENEAR( ext.yMaximum(), 490287, 100 );
24212424

2425+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
24222426
QCOMPARE( def->valueAsPythonString( "1,2,3,4", context ), QStringLiteral( "'1,2,3,4'" ) );
24232427
QCOMPARE( def->valueAsPythonString( r1->id(), context ), QString( "'" ) + testDataDir + QStringLiteral( "tenbytenraster.asc'" ) );
24242428
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( r1 ), context ), QString( "'" ) + testDataDir + QStringLiteral( "tenbytenraster.asc'" ) );
@@ -2582,6 +2586,7 @@ void TestQgsProcessing::parameterPoint()
25822586
QGSCOMPARENEAR( point.x(), 122451, 100 );
25832587
QGSCOMPARENEAR( point.y(), 244963, 100 );
25842588

2589+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
25852590
QCOMPARE( def->valueAsPythonString( "1,2", context ), QStringLiteral( "'1,2'" ) );
25862591
QCOMPARE( def->valueAsPythonString( "1,2 [EPSG:4326]", context ), QStringLiteral( "'1,2 [EPSG:4326]'" ) );
25872592
QCOMPARE( def->valueAsPythonString( QgsPointXY( 11, 12 ), context ), QStringLiteral( "'11,12'" ) );
@@ -2654,6 +2659,7 @@ void TestQgsProcessing::parameterFile()
26542659
QVERIFY( def->checkValueIsAcceptable( "bricks.BMP" ) );
26552660
QVERIFY( !def->checkValueIsAcceptable( "bricks.pcx" ) );
26562661

2662+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
26572663
QCOMPARE( def->valueAsPythonString( "bricks.bmp", context ), QStringLiteral( "'bricks.bmp'" ) );
26582664
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProperty::fromExpression( "\"a\"=1" ) ), context ), QStringLiteral( "QgsProperty.fromExpression('\"a\"=1')" ) );
26592665
QCOMPARE( def->valueAsPythonString( "uri='complex' username=\"complex\"", context ), QStringLiteral( "'uri=\\'complex\\' username=\\\"complex\\\"'" ) );
@@ -2741,6 +2747,7 @@ void TestQgsProcessing::parameterMatrix()
27412747
params.insert( "non_optional", QString( "4,5,6" ) );
27422748
QCOMPARE( QgsProcessingParameters::parameterAsMatrix( def.get(), params, context ), QVariantList() << 4 << 5 << 6 );
27432749

2750+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
27442751
QCOMPARE( def->valueAsPythonString( 5, context ), QStringLiteral( "[5]" ) );
27452752
QCOMPARE( def->valueAsPythonString( QVariantList() << 1 << 2 << 3, context ), QStringLiteral( "[1,2,3]" ) );
27462753
QCOMPARE( def->valueAsPythonString( QVariantList() << ( QVariantList() << 1 << 2 << 3 ) << ( QVariantList() << 1 << 2 << 3 ), context ), QStringLiteral( "[1,2,3,1,2,3]" ) );
@@ -2903,6 +2910,7 @@ void TestQgsProcessing::parameterLayerList()
29032910
QVERIFY( !def->checkValueIsAcceptable( QStringList() << "layer12312312" << "layerB" ) );
29042911
QVERIFY( !def->checkValueIsAcceptable( QVariantList() << "layer12312312" << "layerB" ) );
29052912

2913+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
29062914
QCOMPARE( def->valueAsPythonString( "layer12312312", context ), QStringLiteral( "'layer12312312'" ) );
29072915
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( r1 ), context ), QStringLiteral( "['" ) + testDataDir + QStringLiteral( "tenbytenraster.asc']" ) );
29082916
QCOMPARE( def->valueAsPythonString( r1->id(), context ), QStringLiteral( "['" ) + testDataDir + QStringLiteral( "tenbytenraster.asc']" ) );
@@ -3062,6 +3070,7 @@ void TestQgsProcessing::parameterDistance()
30623070
QVERIFY( def->checkValueIsAcceptable( 15 ) );
30633071
QVERIFY( def->checkValueIsAcceptable( "11.1" ) );
30643072

3073+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
30653074
QCOMPARE( def->valueAsPythonString( 5, context ), QStringLiteral( "5" ) );
30663075
QCOMPARE( def->valueAsPythonString( QStringLiteral( "1.1" ), context ), QStringLiteral( "1.1" ) );
30673076
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProperty::fromExpression( "\"a\"=1" ) ), context ), QStringLiteral( "QgsProperty.fromExpression('\"a\"=1')" ) );
@@ -3151,6 +3160,7 @@ void TestQgsProcessing::parameterNumber()
31513160
QVERIFY( def->checkValueIsAcceptable( 15 ) );
31523161
QVERIFY( def->checkValueIsAcceptable( "11.1" ) );
31533162

3163+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
31543164
QCOMPARE( def->valueAsPythonString( 5, context ), QStringLiteral( "5" ) );
31553165
QCOMPARE( def->valueAsPythonString( QStringLiteral( "1.1" ), context ), QStringLiteral( "1.1" ) );
31563166
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProperty::fromExpression( "\"a\"=1" ) ), context ), QStringLiteral( "QgsProperty.fromExpression('\"a\"=1')" ) );
@@ -3260,6 +3270,7 @@ void TestQgsProcessing::parameterRange()
32603270
params.insert( "non_optional", QVariantList() << 1.1 );
32613271
range = QgsProcessingParameters::parameterAsRange( def.get(), params, context );
32623272

3273+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
32633274
QCOMPARE( def->valueAsPythonString( "1.1,2", context ), QStringLiteral( "[1.1,2]" ) );
32643275
QCOMPARE( def->valueAsPythonString( QVariantList() << 1.1 << 2, context ), QStringLiteral( "[1.1,2]" ) );
32653276
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProperty::fromExpression( "\"a\"=1" ) ), context ), QStringLiteral( "QgsProperty.fromExpression('\"a\"=1')" ) );
@@ -3366,6 +3377,7 @@ void TestQgsProcessing::parameterRasterLayer()
33663377
params.insert( "non_optional", QString( "i'm not a layer, and nothing you can do will make me one" ) );
33673378
QVERIFY( !QgsProcessingParameters::parameterAsRasterLayer( def.get(), params, context ) );
33683379

3380+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
33693381
QCOMPARE( def->valueAsPythonString( raster1, context ), QString( "'" ) + testDataDir + QStringLiteral( "tenbytenraster.asc'" ) );
33703382
QCOMPARE( def->valueAsPythonString( r1->id(), context ), QString( "'" ) + testDataDir + QStringLiteral( "tenbytenraster.asc'" ) );
33713383
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( r1 ), context ), QString( "'" ) + testDataDir + QStringLiteral( "tenbytenraster.asc'" ) );
@@ -3475,6 +3487,7 @@ void TestQgsProcessing::parameterEnum()
34753487
iNumber = QgsProcessingParameters::parameterAsEnum( def.get(), params, context );
34763488
QCOMPARE( iNumber, 2 );
34773489

3490+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
34783491
QCOMPARE( def->valueAsPythonString( 5, context ), QStringLiteral( "5" ) );
34793492
QCOMPARE( def->valueAsPythonString( QStringLiteral( "1.1" ), context ), QStringLiteral( "1" ) );
34803493
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProperty::fromExpression( "\"a\"=1" ) ), context ), QStringLiteral( "QgsProperty.fromExpression('\"a\"=1')" ) );
@@ -3531,6 +3544,7 @@ void TestQgsProcessing::parameterEnum()
35313544
iNumbers = QgsProcessingParameters::parameterAsEnums( def.get(), params, context );
35323545
QCOMPARE( iNumbers, QList<int>() );
35333546

3547+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
35343548
QCOMPARE( def->valueAsPythonString( QVariantList() << 1 << 2, context ), QStringLiteral( "[1,2]" ) );
35353549
QCOMPARE( def->valueAsPythonString( QStringLiteral( "1,2" ), context ), QStringLiteral( "[1,2]" ) );
35363550

@@ -3633,6 +3647,7 @@ void TestQgsProcessing::parameterString()
36333647
params.insert( "non_optional", QString( "abcdef" ) );
36343648
QCOMPARE( QgsProcessingParameters::parameterAsString( def.get(), params, context ), QString( "abcdef" ) );
36353649

3650+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
36363651
QCOMPARE( def->valueAsPythonString( 5, context ), QStringLiteral( "'5'" ) );
36373652
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc" ), context ), QStringLiteral( "'abc'" ) );
36383653
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc\ndef" ), context ), QStringLiteral( "'abc\\ndef'" ) );
@@ -3764,6 +3779,7 @@ void TestQgsProcessing::parameterExpression()
37643779
params.insert( "non_optional", QString( "abcdef" ) );
37653780
QCOMPARE( QgsProcessingParameters::parameterAsExpression( def.get(), params, context ), QString( "abcdef" ) );
37663781

3782+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
37673783
QCOMPARE( def->valueAsPythonString( 5, context ), QStringLiteral( "'5'" ) );
37683784
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc" ), context ), QStringLiteral( "'abc'" ) );
37693785
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc\ndef" ), context ), QStringLiteral( "'abc\\ndef'" ) );
@@ -3838,6 +3854,7 @@ void TestQgsProcessing::parameterField()
38383854
QStringList fields = QgsProcessingParameters::parameterAsFields( def.get(), params, context );
38393855
QCOMPARE( fields, QStringList() << "a" );
38403856

3857+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
38413858
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc" ), context ), QStringLiteral( "'abc'" ) );
38423859
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProperty::fromExpression( "\"a\"=1" ) ), context ), QStringLiteral( "QgsProperty.fromExpression('\"a\"=1')" ) );
38433860
QCOMPARE( def->valueAsPythonString( "probably\'invalid\"field", context ), QStringLiteral( "'probably\\'invalid\\\"field'" ) );
@@ -3924,6 +3941,7 @@ void TestQgsProcessing::parameterField()
39243941
fields = QgsProcessingParameters::parameterAsFields( def.get(), params, context );
39253942
QCOMPARE( fields, QStringList() << "a" << "b" );
39263943

3944+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
39273945
QCOMPARE( def->valueAsPythonString( QStringList() << "a" << "b", context ), QStringLiteral( "['a','b']" ) );
39283946
QCOMPARE( def->valueAsPythonString( QStringList() << "a" << "b", context ), QStringLiteral( "['a','b']" ) );
39293947

@@ -4060,6 +4078,7 @@ void TestQgsProcessing::parameterVectorLayer()
40604078
params.insert( "non_optional", QString( "i'm not a layer, and nothing you can do will make me one" ) );
40614079
QVERIFY( !QgsProcessingParameters::parameterAsVectorLayer( def.get(), params, context ) );
40624080

4081+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
40634082
QCOMPARE( def->valueAsPythonString( vector1, context ), QString( "'" ) + testDataDir + QStringLiteral( "multipoint.shp'" ) );
40644083
QCOMPARE( def->valueAsPythonString( v1->id(), context ), QString( "'" ) + testDataDir + QStringLiteral( "multipoint.shp'" ) );
40654084
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( v1 ), context ), QString( "'" ) + testDataDir + QStringLiteral( "multipoint.shp'" ) );
@@ -4173,6 +4192,7 @@ void TestQgsProcessing::parameterFeatureSource()
41734192
params.insert( "non_optional", QString( "i'm not a layer, and nothing you can do will make me one" ) );
41744193
QVERIFY( !QgsProcessingParameters::parameterAsVectorLayer( def.get(), params, context ) );
41754194

4195+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
41764196
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc" ), context ), QStringLiteral( "'abc'" ) );
41774197
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProcessingFeatureSourceDefinition( "abc" ) ), context ), QStringLiteral( "'abc'" ) );
41784198
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProcessingFeatureSourceDefinition( v2->id() ) ), context ), QStringLiteral( "'%1'" ).arg( vector2 ) );
@@ -4286,6 +4306,7 @@ void TestQgsProcessing::parameterFeatureSink()
42864306
QVERIFY( def->checkValueIsAcceptable( "c:/Users/admin/Desktop/roads_clipped_transformed_v1_reprojected_final_clipped_aAAA.shp" ) );
42874307
QVERIFY( def->checkValueIsAcceptable( "c:/Users/admin/Desktop/roads_clipped_transformed_v1_reprojected_final_clipped_aAAA.shp", &context ) );
42884308

4309+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
42894310
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc" ), context ), QStringLiteral( "'abc'" ) );
42904311
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProcessingOutputLayerDefinition( "abc" ) ), context ), QStringLiteral( "'abc'" ) );
42914312
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProcessingOutputLayerDefinition( QgsProperty::fromValue( "abc" ) ) ), context ), QStringLiteral( "'abc'" ) );
@@ -4413,6 +4434,7 @@ void TestQgsProcessing::parameterVectorOut()
44134434
QVERIFY( def->checkValueIsAcceptable( "c:/Users/admin/Desktop/roads_clipped_transformed_v1_reprojected_final_clipped_aAAA.shp" ) );
44144435
QVERIFY( def->checkValueIsAcceptable( "c:/Users/admin/Desktop/roads_clipped_transformed_v1_reprojected_final_clipped_aAAA.shp", &context ) );
44154436

4437+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
44164438
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc" ), context ), QStringLiteral( "'abc'" ) );
44174439
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProcessingOutputLayerDefinition( "abc" ) ), context ), QStringLiteral( "'abc'" ) );
44184440
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProcessingOutputLayerDefinition( QgsProperty::fromValue( "abc" ) ) ), context ), QStringLiteral( "'abc'" ) );
@@ -4518,6 +4540,7 @@ void TestQgsProcessing::parameterRasterOut()
45184540
QVERIFY( def->checkValueIsAcceptable( "c:/Users/admin/Desktop/roads_clipped_transformed_v1_reprojected_final_clipped_aAAA.tif" ) );
45194541
QVERIFY( def->checkValueIsAcceptable( "c:/Users/admin/Desktop/roads_clipped_transformed_v1_reprojected_final_clipped_aAAA.tif", &context ) );
45204542

4543+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
45214544
QCOMPARE( def->defaultFileExtension(), QStringLiteral( "tif" ) );
45224545
QVERIFY( def->generateTemporaryDestination().endsWith( QStringLiteral( ".tif" ) ) );
45234546
QVERIFY( def->generateTemporaryDestination().startsWith( QgsProcessingUtils::tempFolder() ) );
@@ -4650,6 +4673,7 @@ void TestQgsProcessing::parameterFileOut()
46504673
params.insert( "non_optional", QgsProcessingOutputLayerDefinition( "test.txt" ) );
46514674
QCOMPARE( QgsProcessingParameters::parameterAsFileOutput( def.get(), params, context ), QStringLiteral( "test.txt" ) );
46524675

4676+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
46534677
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc" ), context ), QStringLiteral( "'abc'" ) );
46544678
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProcessingOutputLayerDefinition( "abc" ) ), context ), QStringLiteral( "'abc'" ) );
46554679
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProcessingOutputLayerDefinition( QgsProperty::fromValue( "abc" ) ) ), context ), QStringLiteral( "'abc'" ) );
@@ -4743,6 +4767,7 @@ void TestQgsProcessing::parameterFolderOut()
47434767
params.insert( "non_optional", "c:/mine" );
47444768
QCOMPARE( QgsProcessingParameters::parameterAsFileOutput( def.get(), params, context ), QStringLiteral( "c:/mine" ) );
47454769

4770+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
47464771
QCOMPARE( def->valueAsPythonString( QStringLiteral( "abc" ), context ), QStringLiteral( "'abc'" ) );
47474772
QCOMPARE( def->valueAsPythonString( QVariant::fromValue( QgsProperty::fromExpression( "\"a\"=1" ) ), context ), QStringLiteral( "QgsProperty.fromExpression('\"a\"=1')" ) );
47484773
QCOMPARE( def->valueAsPythonString( "uri='complex' username=\"complex\"", context ), QStringLiteral( "'uri=\\'complex\\' username=\\\"complex\\\"'" ) );
@@ -4807,6 +4832,7 @@ void TestQgsProcessing::parameterBand()
48074832
int band = QgsProcessingParameters::parameterAsInt( def.get(), params, context );
48084833
QCOMPARE( band, 1 );
48094834

4835+
QCOMPARE( def->valueAsPythonString( QVariant(), context ), QStringLiteral( "None" ) );
48104836
QCOMPARE( def->valueAsPythonString( 5, context ), QStringLiteral( "5" ) );
48114837

48124838
QString code = def->asScriptCode();

0 commit comments

Comments
 (0)
Please sign in to comment.