buildframework/helium/sf/python/pythoncore/lib/pythoncoretests/test_ctc.py
changeset 587 85df38eb4012
child 588 c7c26511138f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/sf/python/pythoncore/lib/pythoncoretests/test_ctc.py	Tue Apr 27 08:33:08 2010 +0300
@@ -0,0 +1,98 @@
+#============================================================================ 
+#Name        : test_ctc.py 
+#Part of     : Helium 
+
+#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+#All rights reserved.
+#This component and the accompanying materials are made available
+#under the terms of the License "Eclipse Public License v1.0"
+#which accompanies this distribution, and is available
+#at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+#Initial Contributors:
+#Nokia Corporation - initial contribution.
+#
+#Contributors:
+#
+#Description:
+#===============================================================================
+
+import unittest
+import ctc
+import logging
+import os
+import fileutils
+import tempfile
+
+_logger = logging.getLogger('test.configuration')
+logging.basicConfig(level=logging.INFO)
+
+root_test_dir = tempfile.mkdtemp()
+_test_file_paths = [
+                    "ctc/dir/component1/group/MON.SYM",
+                    "ctc/dir/component2/group/",
+                    "ctc/dir/component3/group/MON.SYM",
+]
+
+def _testpath(subpath):
+    """ Normalised path for test paths. """
+    return os.path.normpath(os.path.join(root_test_dir, subpath))
+
+_test_file_content = {}
+
+def setup_module():
+    """ Setup files test config. 
+    
+    This creates a number of empty files in a temporary directory structure
+    for testing various file selection and archiving operations.
+    """
+    for child_path in _test_file_paths:
+        path = os.path.join(root_test_dir, child_path)
+        path_dir = path
+        path_dir = os.path.dirname(path)
+        
+        if (not os.path.exists(path_dir)):
+            _logger.debug('Creating dir:  ' + path_dir)
+            os.makedirs(path_dir)
+
+        if(not path.endswith('/') and not path.endswith('\\')):
+            _logger.debug('Creating file: ' + path)
+            handle = open(path, 'w')
+            # Write any file content that is needed
+            if _test_file_content.has_key(child_path):
+                handle.write(_test_file_content[child_path])
+            handle.close()
+
+def teardown_module():
+    """ Teardown test config. """
+    if os.path.exists(root_test_dir):
+        fileutils.rmtree(root_test_dir)
+    
+
+class MockUploader(ctc.MonSymFTPUploader):
+    """ This class provides a mock MonSymFTPUploader """
+    def _open(self):
+        pass
+    
+    def _close(self):
+        pass
+
+    def _ftpmkdirs(self, dir):
+        pass    
+    
+    def _send(self, src, dst):
+        pass
+
+class NestedConfigurationBuilderTest(unittest.TestCase):
+    """ Unit test for ctc uploader """    
+    def test_uploader(self):
+        paths = [   "ctc/dir/component1/group/MON.SYM",
+                    "ctc/dir/component2/group/MON.SYM",
+                    "ctc/dir/component3/group/MON.SYM",
+                    ]
+        uploader = MockUploader("server", [_testpath(p) for p in paths], "1234")
+        result = uploader.upload()
+        print result
+        assert len(result) == 2
+        assert result[0] == "ctc_helium/1234/mon_syms/1/MON.SYM"
+        assert result[1] == "ctc_helium/1234/mon_syms/2/MON.SYM"