diff --git a/tests/yamlparser/job_fixtures/regression-2007227.description.html b/tests/yamlparser/job_fixtures/regression-2007227.description.html
new file mode 100644
index 000000000..ff2ffdc76
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/regression-2007227.description.html
@@ -0,0 +1 @@
+some description
diff --git a/tests/yamlparser/job_fixtures/regression-2007227.xml b/tests/yamlparser/job_fixtures/regression-2007227.xml
new file mode 100644
index 000000000..088da500b
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/regression-2007227.xml
@@ -0,0 +1,16 @@
+
+
+
+ some description
+<!-- Managed by Jenkins Job Builder -->
+ false
+ false
+ false
+ false
+ true
+
+
+
+
+
+
diff --git a/tests/yamlparser/job_fixtures/regression-2007227.yaml b/tests/yamlparser/job_fixtures/regression-2007227.yaml
new file mode 100644
index 000000000..80a86bd84
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/regression-2007227.yaml
@@ -0,0 +1,18 @@
+# https://storyboard.openstack.org/#!/story/2007227
+# with Python 3 there is TypeError when include-raw with property replacement is used in defaults
+
+- defaults:
+ name: 'test-defaults'
+ prop: 'regression-2007227.description'
+ description: !include-raw:
+ - '{prop}.html'
+
+- project:
+ name: 'test-project'
+ jobs:
+ - 'test-job'
+
+- job-template:
+ id: 'test-job'
+ name: '{id}'
+ defaults: 'test-defaults'
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw-escape.inc.txt b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw-escape.inc.txt
new file mode 100644
index 000000000..f62742df6
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw-escape.inc.txt
@@ -0,0 +1 @@
+variable contents
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw-escape.xml b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw-escape.xml
new file mode 100644
index 000000000..4030412f2
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw-escape.xml
@@ -0,0 +1,21 @@
+
+
+
+ <!-- Managed by Jenkins Job Builder -->
+ false
+ false
+ false
+ false
+ true
+
+
+
+
+ echo variable contents
+
+
+
+
+
+
+
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw-escape.yaml b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw-escape.yaml
new file mode 100644
index 000000000..3db4a86e4
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw-escape.yaml
@@ -0,0 +1,13 @@
+# !include-raw-escape: tag in a variable.
+
+- job-template:
+ name: sample-job
+ var: !include-raw-escape: tag_in_parameter-include-raw-escape.inc.txt
+ builders:
+ - shell: |
+ echo {var}
+
+- project:
+ name: sample-project
+ jobs:
+ - sample-job
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw.inc.txt b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw.inc.txt
new file mode 100644
index 000000000..f62742df6
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw.inc.txt
@@ -0,0 +1 @@
+variable contents
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw.xml b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw.xml
new file mode 100644
index 000000000..4030412f2
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw.xml
@@ -0,0 +1,21 @@
+
+
+
+ <!-- Managed by Jenkins Job Builder -->
+ false
+ false
+ false
+ false
+ true
+
+
+
+
+ echo variable contents
+
+
+
+
+
+
+
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw.yaml b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw.yaml
new file mode 100644
index 000000000..cf5bceeff
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-include-raw.yaml
@@ -0,0 +1,13 @@
+# !include-raw: tag in a variable.
+
+- job-template:
+ name: sample-job
+ var: !include-raw: tag_in_parameter-include-raw.inc.txt
+ builders:
+ - shell: |
+ echo {var}
+
+- project:
+ name: sample-project
+ jobs:
+ - sample-job
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-include.inc b/tests/yamlparser/job_fixtures/tag_in_parameter-include.inc
new file mode 100644
index 000000000..f62742df6
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-include.inc
@@ -0,0 +1 @@
+variable contents
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-include.xml b/tests/yamlparser/job_fixtures/tag_in_parameter-include.xml
new file mode 100644
index 000000000..4030412f2
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-include.xml
@@ -0,0 +1,21 @@
+
+
+
+ <!-- Managed by Jenkins Job Builder -->
+ false
+ false
+ false
+ false
+ true
+
+
+
+
+ echo variable contents
+
+
+
+
+
+
+
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-include.yaml b/tests/yamlparser/job_fixtures/tag_in_parameter-include.yaml
new file mode 100644
index 000000000..e7e2211b1
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-include.yaml
@@ -0,0 +1,13 @@
+# !include: tag in a variable.
+
+- job-template:
+ name: sample-job
+ var: !include: tag_in_parameter-include.inc
+ builders:
+ - shell: |
+ echo {var}
+
+- project:
+ name: sample-project
+ jobs:
+ - sample-job
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-join.xml b/tests/yamlparser/job_fixtures/tag_in_parameter-join.xml
new file mode 100644
index 000000000..6ace9852d
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-join.xml
@@ -0,0 +1,21 @@
+
+
+
+ <!-- Managed by Jenkins Job Builder -->
+ false
+ false
+ false
+ false
+ true
+
+
+
+
+ echo some variable
+
+
+
+
+
+
+
diff --git a/tests/yamlparser/job_fixtures/tag_in_parameter-join.yaml b/tests/yamlparser/job_fixtures/tag_in_parameter-join.yaml
new file mode 100644
index 000000000..e5d7c9496
--- /dev/null
+++ b/tests/yamlparser/job_fixtures/tag_in_parameter-join.yaml
@@ -0,0 +1,15 @@
+# !j2: tag in a variable.
+
+- job-template:
+ name: sample-job
+ var: !join:
+ - ' '
+ - [some, variable]
+ builders:
+ - shell: |
+ echo {var}
+
+- project:
+ name: sample-project
+ jobs:
+ - sample-job