diff --git a/test.py b/test.py
new file mode 100755
index 0000000..6472b4c
--- /dev/null
+++ b/test.py
@@ -0,0 +1,40 @@
+#!/usr/bin/python2
+
+import os.path
+import sys
+import cm_sync
+from urllib import urlretrieve
+from subprocess import call
+from xml.dom import minidom
+
+print('STEP 0: Welcome to the CM Crowdin sync script\n')
+
+print('STEP 1: Create cm_caf.xml')
+
+if not os.path.isfile('caf.xml'):
+    sys.exit('You have no caf.xml. Terminating')
+xml = minidom.parse('caf.xml')
+items = xml.getElementsByTagName('item')
+
+cm_caf = []
+
+for item in items:
+    call(['mkdir', '-p', 'tmp/' + item.attributes["path"].value])
+    item_aosp = item.getElementsByTagName('aosp')
+    for aosp_item in item_aosp:
+        url = aosp_item.firstChild.nodeValue
+        path_to_base = 'tmp/' + item.attributes["path"].value + '/' + aosp_item.attributes["file"].value
+        path_to_cm = item.attributes["path"].value + '/' + aosp_item.attributes["file"].value
+        path = item.attributes["path"].value
+        urlretrieve(url, path_to_base)
+        cm_sync.create_cm_caf_xml(path_to_base, path_to_cm, path)
+        cm_caf.append(path + '/cm_caf.xml')
+
+print('\nSTEP 2: Upload Crowdin source translations')
+
+print('\nSTEP 3: Clean up')
+for cm_caf_file in cm_caf:
+    print ('Removing ' + cm_caf_file)
+    os.remove(cm_caf_file)
+
+print('\nSTEP 4: Done!')
