import unittest

from base.GeneralObject import GeneralObject


class TestGeneralObjectTests(unittest.TestCase):
    """
    Test the GeneralObject base class
    """

    def test_object_contents(self):
        """Test whether base contents are stored properly"""
        test_obj = GeneralObject("a", "b", "c")
        self.assertEqual("abc", ''.join(test_obj.contents))
        self.assertEqual(len(test_obj), 0)

    def test_object_dict(self):
        """Test whether the base class is printed properly"""
        test_obj = GeneralObject("a", name="test", value=1)
        self.assertEqual(str(test_obj), "value = 1\nname = test\n")
        self.assertEqual(
            repr(test_obj), "value = 1\nname = test\ncontents = ['a']\n")
        self.assertEqual(len(test_obj), 2)
        self.assertEqual(getattr(test_obj, "value"), 1)
        self.assertEqual(test_obj["value"], 1)
        test_obj["test"] = 1
        self.assertEqual(test_obj["test"], 1)

import unittest

from base.GeneralObject import GeneralObject


class TestGeneralObjectTests(unittest.TestCase):
    """
    Test the GeneralObject base class
    """

    def test_object_contents(self):
        """Test whether base contents are stored properly"""
        test_obj = GeneralObject("a", "b", "c")
        self.assertEqual("abc", ''.join(test_obj.contents))
        self.assertEqual(len(test_obj), 0)

    def test_object_dict(self):
        """Test whether the base class is printed properly"""
        test_obj = GeneralObject("a", name="test", value=1)
        self.assertEqual(str(test_obj), "value = 1\nname = test\n")
        self.assertEqual(
            repr(test_obj), "value = 1\nname = test\ncontents = ['a']\n")
        self.assertEqual(len(test_obj), 2)
        self.assertEqual(test_obj["value"], 1)
        test_obj["test"] = 1
        self.assertEqual(test_obj["test"], 1)

    def test_get_attribute(self):
        "Test that getattr works"
        test_obj = GeneralObject("a", name="test", value=1)
        self.assertEqual(getattr(test_obj, "value", None), 1)
        self.assertEqual(getattr(test_obj, "non-existent", None), None)

    def test_object_comparisons(self):
        "Test that 2 objects of the same length are equal"
        test_obj1 = GeneralObject("a", name="test", value=1)
        test_obj2 = GeneralObject("b", name="test2", value=2)
        test_obj3 = GeneralObject("a", name="test", x=1, y=2)
        self.assertTrue(test_obj1 == test_obj2 )
        self.assertFalse(test_obj1 == test_obj3 )


Add more tests for general_object
Add more tests for general_object

* wqflask/tests/base/test_general_object.py: test getattr() and `==`

  import unittest
  
  from base.GeneralObject import GeneralObject
  
  
  class TestGeneralObjectTests(unittest.TestCase):
      """
      Test the GeneralObject base class
      """
  
      def test_object_contents(self):
          """Test whether base contents are stored properly"""
          test_obj = GeneralObject("a", "b", "c")
          self.assertEqual("abc", ''.join(test_obj.contents))
          self.assertEqual(len(test_obj), 0)
  
      def test_object_dict(self):
          """Test whether the base class is printed properly"""
          test_obj = GeneralObject("a", name="test", value=1)
          self.assertEqual(str(test_obj), "value = 1\nname = test\n")
          self.assertEqual(
              repr(test_obj), "value = 1\nname = test\ncontents = ['a']\n")
          self.assertEqual(len(test_obj), 2)
-         self.assertEqual(getattr(test_obj, "value"), 1)
          self.assertEqual(test_obj["value"], 1)
          test_obj["test"] = 1
          self.assertEqual(test_obj["test"], 1)
  
+     def test_get_attribute(self):
+         "Test that getattr works"
+         test_obj = GeneralObject("a", name="test", value=1)
+         self.assertEqual(getattr(test_obj, "value", None), 1)
+         self.assertEqual(getattr(test_obj, "non-existent", None), None)
+ 
+     def test_object_comparisons(self):
+         "Test that 2 objects of the same length are equal"
+         test_obj1 = GeneralObject("a", name="test", value=1)
+         test_obj2 = GeneralObject("b", name="test2", value=2)
+         test_obj3 = GeneralObject("a", name="test", x=1, y=2)
+         self.assertTrue(test_obj1 == test_obj2 )
+         self.assertFalse(test_obj1 == test_obj3 )
+ 
+ 
Add more tests for general_object
## Code Before:
import unittest

from base.GeneralObject import GeneralObject


class TestGeneralObjectTests(unittest.TestCase):
    """
    Test the GeneralObject base class
    """

    def test_object_contents(self):
        """Test whether base contents are stored properly"""
        test_obj = GeneralObject("a", "b", "c")
        self.assertEqual("abc", ''.join(test_obj.contents))
        self.assertEqual(len(test_obj), 0)

    def test_object_dict(self):
        """Test whether the base class is printed properly"""
        test_obj = GeneralObject("a", name="test", value=1)
        self.assertEqual(str(test_obj), "value = 1\nname = test\n")
        self.assertEqual(
            repr(test_obj), "value = 1\nname = test\ncontents = ['a']\n")
        self.assertEqual(len(test_obj), 2)
        self.assertEqual(getattr(test_obj, "value"), 1)
        self.assertEqual(test_obj["value"], 1)
        test_obj["test"] = 1
        self.assertEqual(test_obj["test"], 1)

## Instruction:
Add more tests for general_object
## Code After:
import unittest

from base.GeneralObject import GeneralObject


class TestGeneralObjectTests(unittest.TestCase):
    """
    Test the GeneralObject base class
    """

    def test_object_contents(self):
        """Test whether base contents are stored properly"""
        test_obj = GeneralObject("a", "b", "c")
        self.assertEqual("abc", ''.join(test_obj.contents))
        self.assertEqual(len(test_obj), 0)

    def test_object_dict(self):
        """Test whether the base class is printed properly"""
        test_obj = GeneralObject("a", name="test", value=1)
        self.assertEqual(str(test_obj), "value = 1\nname = test\n")
        self.assertEqual(
            repr(test_obj), "value = 1\nname = test\ncontents = ['a']\n")
        self.assertEqual(len(test_obj), 2)
        self.assertEqual(test_obj["value"], 1)
        test_obj["test"] = 1
        self.assertEqual(test_obj["test"], 1)

    def test_get_attribute(self):
        "Test that getattr works"
        test_obj = GeneralObject("a", name="test", value=1)
        self.assertEqual(getattr(test_obj, "value", None), 1)
        self.assertEqual(getattr(test_obj, "non-existent", None), None)

    def test_object_comparisons(self):
        "Test that 2 objects of the same length are equal"
        test_obj1 = GeneralObject("a", name="test", value=1)
        test_obj2 = GeneralObject("b", name="test2", value=2)
        test_obj3 = GeneralObject("a", name="test", x=1, y=2)
        self.assertTrue(test_obj1 == test_obj2 )
        self.assertFalse(test_obj1 == test_obj3 )

