import unittest

from dict_utils import dict_utils

class DictUtilsTestCase(unittest.TestCase):

    def test_dict_search(self):
        pass

import unittest

from dict_utils import dict_utils

class DictUtilsTestCase(unittest.TestCase):

    def test_dict_search_found(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        found_value = dict_utils.dict_search_value(dict_1, 'name')
        self.assertEqual(found_value, 'Joe', 'Key not found in the given dict')

    def test_dict_search_not_found(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        found_value = dict_utils.dict_search_value(dict_1, 'address')
        self.assertNotEquals(found_value, 'London (UK)', 'Key not found in the given dict')

    def test_dict_search_different_value(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        found_value = dict_utils.dict_search_value(dict_1, 'name')
        self.assertNotEquals(found_value, 'Paul', 'Found value is not different')

    def test_compare_assert_dicts_identical(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        dict_2 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        dict_utils.compare_assert_dicts(self, ['name', 'age'], dict_1, dict_2)

    def test_compare_assert_dicts_different_same_values(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        dict_2 = {'level_1': {'level_2': {'name': 'Joe', 'Age': 30}}}
        dict_utils.compare_assert_dicts(self, ['name', 'age'], dict_1, dict_2)

    def test_compare_assert_dicts_different_keys_structure_same_values(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        dict_2 = {'level_1': {'name': 'Joe', 'Age': 30}}
        dict_utils.compare_assert_dicts(self, ['name', 'age'], dict_1, dict_2)

Add some tests for the implemented methods
Add some tests for the implemented methods

  import unittest
  
  from dict_utils import dict_utils
  
  class DictUtilsTestCase(unittest.TestCase):
  
-     def test_dict_search(self):
+     def test_dict_search_found(self):
-         pass
+         dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
+         found_value = dict_utils.dict_search_value(dict_1, 'name')
+         self.assertEqual(found_value, 'Joe', 'Key not found in the given dict')
  
+     def test_dict_search_not_found(self):
+         dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
+         found_value = dict_utils.dict_search_value(dict_1, 'address')
+         self.assertNotEquals(found_value, 'London (UK)', 'Key not found in the given dict')
+ 
+     def test_dict_search_different_value(self):
+         dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
+         found_value = dict_utils.dict_search_value(dict_1, 'name')
+         self.assertNotEquals(found_value, 'Paul', 'Found value is not different')
+ 
+     def test_compare_assert_dicts_identical(self):
+         dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
+         dict_2 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
+         dict_utils.compare_assert_dicts(self, ['name', 'age'], dict_1, dict_2)
+ 
+     def test_compare_assert_dicts_different_same_values(self):
+         dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
+         dict_2 = {'level_1': {'level_2': {'name': 'Joe', 'Age': 30}}}
+         dict_utils.compare_assert_dicts(self, ['name', 'age'], dict_1, dict_2)
+ 
+     def test_compare_assert_dicts_different_keys_structure_same_values(self):
+         dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
+         dict_2 = {'level_1': {'name': 'Joe', 'Age': 30}}
+         dict_utils.compare_assert_dicts(self, ['name', 'age'], dict_1, dict_2)
+ 
Add some tests for the implemented methods
## Code Before:
import unittest

from dict_utils import dict_utils

class DictUtilsTestCase(unittest.TestCase):

    def test_dict_search(self):
        pass

## Instruction:
Add some tests for the implemented methods
## Code After:
import unittest

from dict_utils import dict_utils

class DictUtilsTestCase(unittest.TestCase):

    def test_dict_search_found(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        found_value = dict_utils.dict_search_value(dict_1, 'name')
        self.assertEqual(found_value, 'Joe', 'Key not found in the given dict')

    def test_dict_search_not_found(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        found_value = dict_utils.dict_search_value(dict_1, 'address')
        self.assertNotEquals(found_value, 'London (UK)', 'Key not found in the given dict')

    def test_dict_search_different_value(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        found_value = dict_utils.dict_search_value(dict_1, 'name')
        self.assertNotEquals(found_value, 'Paul', 'Found value is not different')

    def test_compare_assert_dicts_identical(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        dict_2 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        dict_utils.compare_assert_dicts(self, ['name', 'age'], dict_1, dict_2)

    def test_compare_assert_dicts_different_same_values(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        dict_2 = {'level_1': {'level_2': {'name': 'Joe', 'Age': 30}}}
        dict_utils.compare_assert_dicts(self, ['name', 'age'], dict_1, dict_2)

    def test_compare_assert_dicts_different_keys_structure_same_values(self):
        dict_1 = {'first_level': {'second_level': {'name': 'Joe', 'Age': 30}}}
        dict_2 = {'level_1': {'name': 'Joe', 'Age': 30}}
        dict_utils.compare_assert_dicts(self, ['name', 'age'], dict_1, dict_2)
