import json
from django.test import TestCase
from django_extensions.management.commands.show_urls import Command


class UrlTests(TestCase):
    def is_exception(self, url):
        exceptions = [".txt", ".ics", ".geojson"]
        for exception in exceptions:
            if exception in url:
                return True
        return False

    def test_trailing_slashes(self):
        c = Command()
        data = json.loads(
            c.handle(
                **{
                    "unsorted": False,
                    "language": None,
                    "decorator": [],
                    "format_style": "json",
                    "urlconf": "ROOT_URLCONF",
                    "no_color": True,
                }
            )
        )
        urls = [rec["url"] for rec in data]
        for url in urls:

            if self.is_exception(url):
                continue
            assert url[-1] == "/" or ">", url + " does not end with /"

import json
from django.test import TestCase
from django_extensions.management.commands.show_urls import Command


class UrlTests(TestCase):
    def is_exception(self, url):
        exceptions = [".txt", ".ics", ".geojson"]
        for exception in exceptions:
            if exception in url:
                return True
        return False

    def test_trailing_slashes(self):
        c = Command()
        data = json.loads(
            c.handle(
                **{
                    "unsorted": False,
                    "language": None,
                    "decorator": [],
                    "format_style": "json",
                    "urlconf": "ROOT_URLCONF",
                    "no_color": True,
                }
            )
        )
        urls = [rec["url"] for rec in data]
        urls.remove("/admin/<url>")
        for url in urls:

            if self.is_exception(url):
                continue
            assert url[-1] == "/", url + " does not end with /"

Refactor test for new view added with upgrade
Refactor test for new view added with upgrade

  import json
  from django.test import TestCase
  from django_extensions.management.commands.show_urls import Command
  
  
  class UrlTests(TestCase):
      def is_exception(self, url):
          exceptions = [".txt", ".ics", ".geojson"]
          for exception in exceptions:
              if exception in url:
                  return True
          return False
  
      def test_trailing_slashes(self):
          c = Command()
          data = json.loads(
              c.handle(
                  **{
                      "unsorted": False,
                      "language": None,
                      "decorator": [],
                      "format_style": "json",
                      "urlconf": "ROOT_URLCONF",
                      "no_color": True,
                  }
              )
          )
          urls = [rec["url"] for rec in data]
+         urls.remove("/admin/<url>")
          for url in urls:
  
              if self.is_exception(url):
                  continue
-             assert url[-1] == "/" or ">", url + " does not end with /"
+             assert url[-1] == "/", url + " does not end with /"
  
Refactor test for new view added with upgrade
## Code Before:
import json
from django.test import TestCase
from django_extensions.management.commands.show_urls import Command


class UrlTests(TestCase):
    def is_exception(self, url):
        exceptions = [".txt", ".ics", ".geojson"]
        for exception in exceptions:
            if exception in url:
                return True
        return False

    def test_trailing_slashes(self):
        c = Command()
        data = json.loads(
            c.handle(
                **{
                    "unsorted": False,
                    "language": None,
                    "decorator": [],
                    "format_style": "json",
                    "urlconf": "ROOT_URLCONF",
                    "no_color": True,
                }
            )
        )
        urls = [rec["url"] for rec in data]
        for url in urls:

            if self.is_exception(url):
                continue
            assert url[-1] == "/" or ">", url + " does not end with /"

## Instruction:
Refactor test for new view added with upgrade
## Code After:
import json
from django.test import TestCase
from django_extensions.management.commands.show_urls import Command


class UrlTests(TestCase):
    def is_exception(self, url):
        exceptions = [".txt", ".ics", ".geojson"]
        for exception in exceptions:
            if exception in url:
                return True
        return False

    def test_trailing_slashes(self):
        c = Command()
        data = json.loads(
            c.handle(
                **{
                    "unsorted": False,
                    "language": None,
                    "decorator": [],
                    "format_style": "json",
                    "urlconf": "ROOT_URLCONF",
                    "no_color": True,
                }
            )
        )
        urls = [rec["url"] for rec in data]
        urls.remove("/admin/<url>")
        for url in urls:

            if self.is_exception(url):
                continue
            assert url[-1] == "/", url + " does not end with /"
