diff --git a/functional/test_software_config.py b/functional/test_software_config.py
index 815893f..8a2e193 100644
--- a/functional/test_software_config.py
+++ b/functional/test_software_config.py
@@ -14,6 +14,7 @@
 import os
 import requests
 import subprocess
+import sys
 import tempfile
 import time
 import yaml
@@ -211,26 +212,28 @@
         config = metadata['os-collect-config']['zaqar']
         conf_content = self.conf_template % config
         fd, temp_path = tempfile.mkstemp()
-        os.write(fd, conf_content)
+        os.write(fd, conf_content.encode('utf-8'))
         os.close(fd)
         cmd = ['os-collect-config', '--one-time',
                '--config-file=%s' % temp_path, 'zaqar']
         proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
         stdout_value = proc.communicate()[0]
-        data = json.loads(stdout_value)
+        data = json.loads(stdout_value.decode('utf-8'))
         self.assertEqual(config, data['zaqar']['os-collect-config']['zaqar'])
         proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
         stdout_value = proc.communicate()[0]
-        data = json.loads(stdout_value)
+        data = json.loads(stdout_value.decode('utf-8'))
 
         fd, temp_path = tempfile.mkstemp()
-        os.write(fd, json.dumps(data['zaqar']['deployments'][0]))
+        os.write(fd,
+                 json.dumps(data['zaqar']['deployments'][0]).encode('utf-8'))
         os.close(fd)
-        cmd = ['python', self.conf.heat_config_notify_script, temp_path]
+        cmd = [sys.executable, self.conf.heat_config_notify_script, temp_path]
         proc = subprocess.Popen(cmd,
                                 stderr=subprocess.PIPE,
                                 stdin=subprocess.PIPE)
-        proc.communicate(json.dumps({'deploy_stdout': 'here!'}))
+        proc.communicate(
+            json.dumps({'deploy_stdout': 'here!'}).encode('utf-8'))
         self._wait_for_stack_status(stack_identifier, 'CREATE_COMPLETE')
         stack = self.client.stacks.get(stack_identifier)
         self.assertEqual('here!', stack.outputs[0]['output_value'])
