Repository: joke2k/faker

Issue:
invalid pt_BR cellphone numbers being generated
* Faker version: 4.0.2
* OS: Ubuntu 16.04.6 LTS

If I got [MSISDN](https://en.wikipedia.org/wiki/MSISDN) right, and it is possible I did it wrong since I know nothing about telecom, they are just meant to cellphones and not landline phones. In Brazil cellphones started now to have a 9 in front of its digits. This was implemented by @rodrigondec on 941e06693ff8771d715d2f9f37d79a7f1b8fa8f4 but he added `5511########` on `msisdn_formats`.

If I got the mobile and not landline thing right all the following lines are generating invalid cellphone numbers:
```
'5511########',
'5521########',
'5531########',
'5541########',
'5551########',
'5561########',
'5571########',
'5581########',
'5584########',
```

### Steps to reproduce

1. Instantiate faker: `faker = Faker()`
2. call `len(faker.msisdn)`

### Expected behavior

The length should always return 13 for pt_BR locales.

From ANATEL, the telecom national agency in Brazil: https://www.anatel.gov.br/Portal/exibirPortalPaginaEspecial.do;jsessionid=4CF5489B6943AFF3E2BDA192CC1B5220.site1?org.apache.struts.taglib.html.TOKEN=bbe01b15d1c58d2f938580db5547cb8e&acao=carregaPasta&codItemCanal=1722&pastaSelecionada=2831
> 1. Por que os números dos telefones celulares terão o nono dígito?
> Os números dos telefones celulares estão recebendo mais um dígito para atender à crescente demanda pelo serviço móvel no Brasil(....)
> 2. O nono dígito será adicionado aos números de todo o Brasil?
> O nono dígito será implementado em todo o País até o fim de 2016(...)

Translates to:
1. Why the cell phone numbers will have a 9th digit?
The cell phone numbers are receiving one more digit to address the demand growth of mobile service in Brazil...
2. The 9th digit will be added to all numbers in Brazil?
The 9th digit will be implemented in the whole country by the end of 2016...

### Actual behavior

the length sometimes is 12



Discussion:
+1
BTW, I can definitely fix it if the main maintainers are ok with that and the MSISDN thing is correct.
I didn't know about MSISDN being only cellphones. Sorry for the mistake 😅

Want me to fix it? Since it was mine mistake

And on the [test](https://github.com/joke2k/faker/commit/941e06693ff8771d715d2f9f37d79a7f1b8fa8f4#diff-4e65b94d2877aa473ad2c2db8b7ef626R81) I did explicitly tell that it would return a 13 or 12 digit number
I think first we need to ensure that MSISDN are cell phone only. 😃
I'm not familiar with what this provider is supposed to output for `pt_BR`, so I'll leave it up to y'all living in Brazil. Once you reached a consensus and the PR is ready I will review it and merge.

Resolving patch:
diff --git a/faker/providers/phone_number/pt_BR/__init__.py b/faker/providers/phone_number/pt_BR/__init__.py
--- a/faker/providers/phone_number/pt_BR/__init__.py
+++ b/faker/providers/phone_number/pt_BR/__init__.py
@@ -78,15 +78,6 @@ class Provider(PhoneNumberProvider):
     )
 
     msisdn_formats = (
-        '5511########',
-        '5521########',
-        '5531########',
-        '5541########',
-        '5551########',
-        '5561########',
-        '5571########',
-        '5581########',
-        '5584########',
         '55119########',
         '55219########',
         '55319########',


Test patch:
diff --git a/tests/providers/test_phone_number.py b/tests/providers/test_phone_number.py
--- a/tests/providers/test_phone_number.py
+++ b/tests/providers/test_phone_number.py
@@ -78,10 +78,10 @@ def test_msisdn(self):
 
         assert msisdn is not None
         assert isinstance(msisdn, str)
-        assert len(msisdn) == 13 or len(msisdn) == 12
+        assert len(msisdn) == 13
         assert msisdn.isdigit()
         assert msisdn[0:4] in formats
-        re.match(r"^[+]?([0-9]{2})?[ ]?[(]?[0]?\d{2}[)]?[ ]?[09]?[ ]?\d{4}[ -]?\d{4}$", msisdn)
+        re.match(r"^[5]{2}\d{2}[9]\d{8}$", msisdn)
 
     def test_cellphone(self):
         cellphone = self.fake.cellphone_number()