aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorHugo Lima <hugo.lima@openbossa.org>2010-01-18 21:28:58 -0200
committerMarcelo Lira <marcelo.lira@openbossa.org>2010-01-19 12:21:45 -0300
commit2e7bab62943ada0320ce0cd7c8a6d6be6e64a6f3 (patch)
tree0847854049dcda17729efb581af7f04b4bb6b0a1 /tests
parent258702853d4cc7ce09d0862cecb2fa08d986da7e (diff)
Adds test case for overload with static and a non-static versions of a method.
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/libsample/simplefile.cpp15
-rw-r--r--tests/libsample/simplefile.h3
-rwxr-xr-xtests/samplebinding/simplefile_test.py2
-rwxr-xr-xtests/samplebinding/static_nonstatic_methods_test.py79
4 files changed, 98 insertions, 1 deletions
diff --git a/tests/libsample/simplefile.cpp b/tests/libsample/simplefile.cpp
index 46844559e..c79152bac 100644
--- a/tests/libsample/simplefile.cpp
+++ b/tests/libsample/simplefile.cpp
@@ -32,6 +32,7 @@
* 02110-1301 USA
*/
+#include <fstream>
#include "simplefile.h"
bool
@@ -56,3 +57,17 @@ SimpleFile::close()
}
}
+bool
+SimpleFile::exists() const
+{
+ std::ifstream ifile(m_filename);
+ return ifile;
+}
+
+bool
+SimpleFile::exists(const char* filename)
+{
+ std::ifstream ifile(filename);
+ return ifile;
+}
+
diff --git a/tests/libsample/simplefile.h b/tests/libsample/simplefile.h
index aad82c21e..67797e7d4 100644
--- a/tests/libsample/simplefile.h
+++ b/tests/libsample/simplefile.h
@@ -64,6 +64,9 @@ public:
bool open();
void close();
+ bool exists() const;
+ static bool exists(const char* filename);
+
private:
const char* m_filename;
FILE* m_descriptor;
diff --git a/tests/samplebinding/simplefile_test.py b/tests/samplebinding/simplefile_test.py
index e96fcce74..52e7952df 100755
--- a/tests/samplebinding/simplefile_test.py
+++ b/tests/samplebinding/simplefile_test.py
@@ -3,7 +3,7 @@
#
# This file is part of the Shiboken Python Bindings Generator project.
#
-# Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
#
# Contact: PySide team <contact@pyside.org>
#
diff --git a/tests/samplebinding/static_nonstatic_methods_test.py b/tests/samplebinding/static_nonstatic_methods_test.py
new file mode 100755
index 000000000..c1c7422ee
--- /dev/null
+++ b/tests/samplebinding/static_nonstatic_methods_test.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# This file is part of the Shiboken Python Bindings Generator project.
+#
+# Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+#
+# Contact: PySide team <contact@pyside.org>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# version 2.1 as published by the Free Software Foundation. Please
+# review the following information to ensure the GNU Lesser General
+# Public License version 2.1 requirements will be met:
+# http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+# #
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301 USA
+
+'''Test cases for overloads involving static and non-static versions of a method.'''
+
+import os
+import unittest
+
+from sample import SimpleFile
+
+class StaticNonStaticMethodsTest(unittest.TestCase):
+ '''Test cases for overloads involving static and non-static versions of a method.'''
+
+ def setUp(self):
+ filename = 'simplefile%d.txt' % os.getpid()
+ self.existing_filename = os.path.join(os.path.curdir, filename)
+ self.delete_file = False
+ if not os.path.exists(self.existing_filename):
+ f = open(self.existing_filename, 'w')
+ for line in range(10):
+ f.write('sbrubbles\n')
+ f.close()
+ self.delete_file = True
+
+ self.non_existing_filename = os.path.join(os.path.curdir, 'inexistingfile.txt')
+ i = 0
+ while os.path.exists(self.non_existing_filename):
+ i += 1
+ filename = 'inexistingfile-%d.txt' % i
+ self.non_existing_filename = os.path.join(os.path.curdir, filename)
+
+ def tearDown(self):
+ if self.delete_file:
+ os.remove(self.existing_filename)
+
+ def testCallingStaticMethodWithClass(self):
+ '''Call static method using class.'''
+ self.assert_(SimpleFile.exists(self.existing_filename))
+ self.assertFalse(SimpleFile.exists(self.non_existing_filename))
+
+ def testCallingStaticMethodWithInstance(self):
+ '''Call static method using instance of class.'''
+ f = SimpleFile(self.non_existing_filename)
+ self.assert_(f.exists(self.existing_filename))
+ self.assertFalse(f.exists(self.non_existing_filename))
+
+ def testCallingInstanceMethod(self):
+ '''Call instance method.'''
+ f1 = SimpleFile(self.non_existing_filename)
+ self.assertFalse(f1.exists())
+ f2 = SimpleFile(self.existing_filename)
+ self.assert_(f2.exists())
+
+if __name__ == '__main__':
+ unittest.main()
+