Forum Discussion

pricedgp's avatar
pricedgp
Contributor
8 years ago
Solved

How to NOT expand within context.expand

I'm creating a string that I'm passing via a project-level variable, and inserting into the body of another string. Problem is, this string includes text that looks like a property expansion. The text disappears when I retrieve it using context.expand.

 

Here's the setup:

 

def properties = '''
<cm:property name="configName" value="''' + configName + '''"/>
<cm:property name="sendEventsQuery" value="${query.allMemberEvents}" />
<cm:property name="productFilter" value="''' + productFilter + '''" />
'''

Note that I want the text ${query.allMemberEvents} to be treated as a literal, because it's being used by another process. This works fine when I look at the "properties" variable in my code.

 

I save that into a project-level variable:

 

testRunner.testCase.testSuite.project.setPropertyValue("blueprintProperties", properties)

However, when I do this in another script:

 

 

def blueprintProperties = context.expand('${#Project#blueprintProperties}')

 

the method treats the ${query.allMemberEvents} as a property expansion, and since it isn't, the result is an empty string.

 

I tried variations of single quotes, backslashes, etc., but nothing has worked thus far. 

 

Any ideas? 

 

Thanks!

 

 

 

 

 

  • Hi,

     

    You can use the getPropertyValue method to get data from a project property instead of context.expand.

    Does this work for you?

  • pricedgp's avatar
    pricedgp
    8 years ago

    Thank you! Can't believe I missed that one...

     

2 Replies

  • TanyaYatskovska's avatar
    TanyaYatskovska
    SmartBear Alumni (Retired)

    Hi,

     

    You can use the getPropertyValue method to get data from a project property instead of context.expand.

    Does this work for you?

    • pricedgp's avatar
      pricedgp
      Contributor

      Thank you! Can't believe I missed that one...