Esempio n. 1
0
    def test_m2m_dict_diff_with_new_and_old_state_different(self):
        """Test where old state and new state contains different elements."""

        new_state={'toppings': [{'id': 1, 'name': 'ceboloa'},
                                      {'id': 5, 'name': 'cogumelo'},
                                      {'id': 6, 'name': 'abobrinha'},
                                      {'id': 8, 'name': 'codorna'},
                                      {'id': 9, 'name': 'banana'},
                                      {'id': 10, 'name': 'abacaxi'},
                                      ]}

        old_state={'toppings': [{'id': 1, 'name': 'ceboloa'},
                    {'id': 5, 'name': 'cogumelo'},
                    {'id': 6, 'name': 'abobrinha'},
                    {'id': 8, 'name': 'codorna'},
                    {'id': 9, 'name': 'banana'},
                    {'id': 11, 'name': 'abacate'},
                   ]}

        expected_response = [{'toppings.10.id': [None, 10], 'toppings.10.name': [None, 'abacaxi']},
                    {'toppings.11.id': [11, None], 'toppings.11.name': ['abacate', None]}]

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)

        self.assertEqual(diff, expected_response)
Esempio n. 2
0
    def test_m2m_dict_diff_with_empty_new_state(self):
        """Test where new state is an empty dict."""

        new_state={}

        old_state={'toppings': [{'id': 1, 'name': 'ceboloa'},
                    {'id': 5, 'name': 'cogumelo'},
                    {'id': 6, 'name': 'abobrinha'},
                    {'id': 8, 'name': 'codorna'},
                    {'id': 9, 'name': 'banana'},
                    {'id': 11, 'name': 'abacate'},
                   ]}

        expected_response = [
            {'toppings.1.id': [1, None], 'toppings.1.name': ['ceboloa', None]},
            {'toppings.11.id': [11, None], 'toppings.11.name': ['abacate', None]},
            {'toppings.5.id': [5, None], 'toppings.5.name': ['cogumelo', None]},
            {'toppings.6.id': [6, None], 'toppings.6.name': ['abobrinha', None]},
            {'toppings.8.id': [8, None], 'toppings.8.name': ['codorna', None]},
            {'toppings.9.id': [9, None], 'toppings.9.name': ['banana', None]},
        ]

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)

        self.assertEqual(diff, expected_response)
Esempio n. 3
0
    def test_m2m_dict_diff_with_empty_old_state(self):
        """Test where old state is an empty dict."""

        new_state={'toppings': [{'id': 1, 'name': 'ceboloa'},
                                      {'id': 5, 'name': 'cogumelo'},
                                      {'id': 6, 'name': 'abobrinha'},
                                      {'id': 8, 'name': 'codorna'},
                                      {'id': 9, 'name': 'banana'},
                                      {'id': 10, 'name': 'abacaxi'},
                                      ]}

        old_state={}

        expected_response = [
            {'toppings.1.id': [None, 1], 'toppings.1.name': [None, 'ceboloa']},
            {'toppings.10.id': [None, 10], 'toppings.10.name': [None, 'abacaxi']},
            {'toppings.5.id': [None, 5], 'toppings.5.name': [None, 'cogumelo']},
            {'toppings.6.id': [None, 6], 'toppings.6.name': [None, 'abobrinha']},
            {'toppings.8.id': [None, 8], 'toppings.8.name': [None, 'codorna']},
            {'toppings.9.id': [None, 9], 'toppings.9.name': [None, 'banana']},
        ]

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)

        self.assertEqual(diff, expected_response)
    def test_m2m_dict_diff_with_old_and_new_state_the_same(self):
        """
        test where old state and new state are the same. no change detected!
        """

        new_state={u'toppings': [{u'id': 1, 'name': u'ceboloa'},
                                  {u'id': 5, 'name': u'cogumelo'},
                                  {u'id': 6, 'name': u'abobrinha'},
                                  {u'id': 8, 'name': u'codorna'},
                                  {u'id': 9, 'name': u'banana'},
                                  {u'id': 10, 'name': u'abacaxi'},
                                  ]}

        old_state={u'toppings': [{u'id': 1, 'name': u'ceboloa'},
                                    {u'id': 5, 'name': u'cogumelo'},
                                    {u'id': 6, 'name': u'abobrinha'},
                                    {u'id': 8, 'name': u'codorna'},
                                    {u'id': 9, 'name': u'banana'},
                                    {u'id': 10, 'name': u'abacaxi'},
                                    ]}

        expected_response = []

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)

        self.assertEqual(diff, expected_response)
Esempio n. 5
0
    def test_m2m_dict_diff_with_new_and_old_state_different(self):
        """
        test where old state and new state contains different elements
        """

        new_state={u'toppings': [{u'id': 1, 'name': u'ceboloa'},
                                      {u'id': 5, 'name': u'cogumelo'},
                                      {u'id': 6, 'name': u'abobrinha'},
                                      {u'id': 8, 'name': u'codorna'},
                                      {u'id': 9, 'name': u'banana'},
                                      {u'id': 10, 'name': u'abacaxi'},
                                      ]}

        old_state={u'toppings': [{u'id': 1, 'name': u'ceboloa'},
                    {u'id': 5, 'name': u'cogumelo'},
                    {u'id': 6, 'name': u'abobrinha'},
                    {u'id': 8, 'name': u'codorna'},
                    {u'id': 9, 'name': u'banana'},
                    {u'id': 11, 'name': u'abacate'},
                   ]}

        expected_response = [{u'toppings.10.id': [None, 10], u'toppings.10.name': [None, u'abacaxi']},
                    {u'toppings.11.id': [11, None], u'toppings.11.name': [u'abacate', None]}]

        expected_response = self.sort_dict_collection(expected_response)

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)
        diff = self.sort_dict_collection(diff)

        self.assertEqual(diff, expected_response)
Esempio n. 6
0
    def test_m2m_dict_diff_with_old_and_new_state_the_same(self):
        """
        test where old state and new state are the same. no change detected!
        """

        new_state={u'toppings': [{u'id': 1, 'name': u'ceboloa'},
                                  {u'id': 5, 'name': u'cogumelo'},
                                  {u'id': 6, 'name': u'abobrinha'},
                                  {u'id': 8, 'name': u'codorna'},
                                  {u'id': 9, 'name': u'banana'},
                                  {u'id': 10, 'name': u'abacaxi'},
                                  ]}

        old_state={u'toppings': [{u'id': 1, 'name': u'ceboloa'},
                                    {u'id': 5, 'name': u'cogumelo'},
                                    {u'id': 6, 'name': u'abobrinha'},
                                    {u'id': 8, 'name': u'codorna'},
                                    {u'id': 9, 'name': u'banana'},
                                    {u'id': 10, 'name': u'abacaxi'},
                                    ]}

        expected_response = []

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)

        self.assertEqual(diff, expected_response)
Esempio n. 7
0
    def test_m2m_dict_diff_with_empty_old_state(self):
        """
        test where old state is an empty dict
        """

        new_state={u'toppings': [{u'id': 1, 'name': u'ceboloa'},
                                      {u'id': 5, 'name': u'cogumelo'},
                                      {u'id': 6, 'name': u'abobrinha'},
                                      {u'id': 8, 'name': u'codorna'},
                                      {u'id': 9, 'name': u'banana'},
                                      {u'id': 10, 'name': u'abacaxi'},
                                      ]}

        old_state={}

        expected_response = [{u'toppings.10.id': [None, 10], u'toppings.10.name': [None, u'abacaxi']},
         {u'toppings.5.id': [None, 5], u'toppings.5.name': [None, u'cogumelo']},
         {u'toppings.6.id': [None, 6], u'toppings.6.name': [None, u'abobrinha']},
         {u'toppings.1.id': [None, 1], u'toppings.1.name': [None, u'ceboloa']},
         {u'toppings.8.id': [None, 8], u'toppings.8.name': [None, u'codorna']},
         {u'toppings.9.id': [None, 9], u'toppings.9.name': [None, u'banana']}]

        expected_response = self.sort_dict_collection(expected_response)

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)
        diff = self.sort_dict_collection(diff)

        self.assertEqual(diff, expected_response)
Esempio n. 8
0
    def test_m2m_dict_diff_with_empty_new_state(self):
        """
        test where new state is an empty dict
        """

        new_state={}

        old_state={u'toppings': [{u'id': 1, 'name': u'ceboloa'},
                    {u'id': 5, 'name': u'cogumelo'},
                    {u'id': 6, 'name': u'abobrinha'},
                    {u'id': 8, 'name': u'codorna'},
                    {u'id': 9, 'name': u'banana'},
                    {u'id': 11, 'name': u'abacate'},
                   ]}

        expected_response = [{u'toppings.11.id': [11, None], u'toppings.11.name': [u'abacate', None]},
                    {u'toppings.5.id': [5, None], u'toppings.5.name': [u'cogumelo', None]},
                    {u'toppings.6.id': [6, None], u'toppings.6.name': [u'abobrinha', None]},
                    {u'toppings.1.id': [1, None], u'toppings.1.name': [u'ceboloa', None]},
                    {u'toppings.8.id': [8, None], u'toppings.8.name': [u'codorna', None]},
                    {u'toppings.9.id': [9, None], u'toppings.9.name': [u'banana', None]}]

        expected_response = self.sort_dict_collection(expected_response)

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)
        diff = self.sort_dict_collection(diff)

        self.assertEqual(diff, expected_response)
    def test_m2m_dict_multiple_field_diff(self):
        """
        test where old state and new state contains multiple fields,
        with one field having a changed value
        """

        new_state = {
          u'foo': [
            {u'id': 1, 'name': u'bar'
            }
          ],
          u'toppings': [
              {u'id': 1, 'name': u'ceboloa'},
              {u'id': 5, 'name': u'cogumelo'},
              {u'id': 6, 'name': u'abobrinha'},
              {u'id': 8, 'name': u'codorna'},
              {u'id': 9, 'name': u'banana'},
              {u'id': 10, 'name': u'abcdef'},
            ]
        }

        old_state = {
          u'foo': [
            {u'id': 1, 'name': u'bar'
            }
          ],
          u'toppings': [
            {u'id': 1, 'name': u'ceboloa'},
            {u'id': 5, 'name': u'cogumelo'},
            {u'id': 6, 'name': u'abobrinha'},
            {u'id': 8, 'name': u'codorna'},
            {u'id': 9, 'name': u'banana'},
            {u'id': 10, 'name': u'abcdesccc'},
          ]
        }

        expected_response = [{u'toppings.10.name': [u'abcdesccc', u'abcdef']}]

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)
        self.assertEqual(diff, expected_response)
Esempio n. 10
0
    def test_m2m_dict_multiple_field_diff(self):
        """
        test where old state and new state contains multiple fields,
        with one field having a changed value
        """

        new_state = {
          u'foo': [
            {u'id': 1, 'name': u'bar'
            }
          ],
          u'toppings': [
              {u'id': 1, 'name': u'ceboloa'},
              {u'id': 5, 'name': u'cogumelo'},
              {u'id': 6, 'name': u'abobrinha'},
              {u'id': 8, 'name': u'codorna'},
              {u'id': 9, 'name': u'banana'},
              {u'id': 10, 'name': u'abcdef'},
            ]
        }

        old_state = {
          u'foo': [
            {u'id': 1, 'name': u'bar'
            }
          ],
          u'toppings': [
            {u'id': 1, 'name': u'ceboloa'},
            {u'id': 5, 'name': u'cogumelo'},
            {u'id': 6, 'name': u'abobrinha'},
            {u'id': 8, 'name': u'codorna'},
            {u'id': 9, 'name': u'banana'},
            {u'id': 10, 'name': u'abcdesccc'},
          ]
        }

        expected_response = [{u'toppings.10.name': [u'abcdesccc', u'abcdef']}]

        diff = m2m_audit.m2m_dict_diff(old_state, new_state)
        self.assertEqual(diff, expected_response)