Faits :
A.
Par jugement du 7 mai 2019, le Tribunal correctionnel de l'arrondissement de l'Est vaudois a libéré A._ du chef de dommages à la propriété d'importance mineure (I) et l'a reconnu coupable de lésions corporelles simples, injure, violence ou menace contre les autorités et les fonctionnaires et infraction grave à la loi fédérale sur les stupéfiants (II). Il l'a condamné à une peine privative de liberté de 15 mois, sous déduction de 150 jours de détention provisoire et à une peine pécuniaire de 5 jours-amende à 30 fr. le jour (III). Le Tribunal a renoncé à révoquer le sursis accordé le 16 avril 2015 (IV), a constaté que A._ avait été détenu durant 24 jours dans des conditions de détention illicites et a ordonné que 12 jours soient déduits de la peine privative de liberté à titre de réparation du tort moral (V). L'expulsion de A._ du territoire suisse a été ordonnée pour une durée de 5 ans (VI).
B.
Par jugement du 25 septembre 2019, la Cour d'appel pénale du Tribunal cantonal vaudois a rejeté l'appel formé par A._ contre le jugement de première instance, qu'elle a confirmé.
En substance, la cour cantonale s'est fondée sur les faits suivants.
B.a. Né en 1984 en Tunisie, A._ s'est marié en 2006 avec une Suissesse et a obtenu un permis de séjour en Suisse. Le couple s'est séparé par la suite. En 2013, il a épousé B._. Cette dernière a déposé plainte à plusieurs reprises pour des violences conjugales. Après avoir vécu plusieurs mois chez la mère de B._, puis s'être séparé à plusieurs reprises, le couple vit à nouveau ensemble. Au printemps 2019, une intervention policière pour des violences conjugales a eu lieu.
A._ a travaillé comme magasinier entre 2006 et 2015. Il est depuis lors sans emploi et vit du revenu d'insertion. S'il a entamé des démarches auprès d'un organisme d'insertion professionnelle en vue d'être repris par l'office de placement compétent (ORP), qui l'avait exclu en raison de rendez-vous manqués, il n'a pas jugé utile de rechercher un emploi.
B.b. Le 23 août 2017, A._ a été interpellé alors qu'il était en possession de 12,3 grammes de méthamphétamine et de 3 grammes de cocaïne. Le taux de pureté des lots de 12,1 et de 0,2 grammes de méthamphétamine saisis était respectivement de 79,9 et 80%, ce qui équivaut à 9,7 et 0,16 grammes de drogue pure. Le taux de pureté de la cocaïne était de 63,7%, à savoir 1,9 gramme de drogue pure. Cette drogue était destinée à la consommation personnelle de A._ et de son épouse, voire d'amis de consommation.
Des perquisitions effectuées à son domicile et dans une consigne de gare dont il détenait la clé ont permis la découverte de matériel de conditionnement et d'une quantité totale de 33,6 grammes de marijuana.
B.c. Entre l'été 2016 et le 23 août 2017, A._ a vendu à plusieurs reprises, à des personnes non identifiées, notamment à ses voisins, une quantité indéterminée de marijuana.
Durant cette période, il a vendu à C._ une quantité totale de 4 grammes de méthamphétamine, à raison de 40 fr. par dose de 0,1 gramme. Il a également remis à ce dernier 1 gramme de méthamphétamine en échange de 20 pilules thaïes.
Entre octobre 2016 et août 2017, A._ a acheté une quantité totale d'au moins 40 grammes de méthamphétamine, dont il a remis gratuitement le tiers, soit 13,33 grammes, à son épouse, avec laquelle il consommait cette drogue lors de soirées ou chez eux. A une date indéterminée du mois de juin 2017, A._ a remis gratuitement une quantité de 0,1 gramme de méthamphétamine à D._. Durant l'été 2017, il a remis à 3 ou 4 reprises à E._, en échange d'une quantité indéterminée de marijuana, 0,1 à 0,2 gramme de méthamphétamine, à savoir une quantité totale d'au moins 0,3 gramme. Durant la même période, il a vendu à cette même personne, à 2 ou 3 reprises, une quantité de 0,1 à 0,2 gramme de méthamphétamine pour un montant de 50 fr., à savoir à tout le moins 0,2 gramme.
Il faisait l'intermédiaire en prenant l'argent qui était remis et rapportait la drogue. Au total, les ventes et remises gratuites de méthamphétamine portaient à tout le moins sur une quantité de 18,93 grammes, de sorte qu'il a remis ou vendu 15,13 grammes de méthamphétamine pure, selon un taux moyen de 79,5%.
B.d. Le 23 août 2017, au centre-ville de F._, A._ s'est violemment opposé à son contrôle par deux agents de police et a refusé de les suivre en les repoussant à plusieurs reprises et en se débattant. Une empoignade a eu lieu, lors de laquelle un agent et A._ sont tombés au sol. Lors de cet accrochage, ce dernier a notamment tenté de se saisir de l'arme et du bâton tactique du policier. Il a traité les agents de " fils de pute de flics, sale chien, enculé "et les a menacés en leur déclarant entre autres " si je te trouve, je te crève, je vais te crever, je vais niquer votre mère ".
Blessés, les deux agents de police ont déposé plainte. A._, qui était sous l'influence de méthamphétamine et de cannabis le jour en question, a également subi des contusions.
B.e. Le casier judiciaire suisse de A._ fait état d'une condamnation du 16 avril 2015 par le ministère public de l'arrondissement de l'Est vaudois, à 60 jours-amende à 30 fr. le jour (dont la moitié avec sursis) et 600 fr. d'amende pour conduite en état d'incapacité et contravention à la LStup.
C.
A._ forme un recours en matière pénale auprès du Tribunal fédéral contre le jugement cantonal, dont il requiert, avec suite de frais et dépens, la réforme, en ce sens qu'il est reconnu coupable de lésions corporelles simples, injure, violence et menace contre les autorités et les fonctionnaires et infraction simple à la LStup, une peine privative de liberté de 150 jours ainsi que 5 jours-amende à 30 fr. le jour étant prononcés. Il conclut au versement d'une indemnité pour tort moral de 1'200 fr. en réparation de ses conditions de détention. Il sollicite en outre l'octroi de l'assistance judiciaire.
Considérant en droit :
1.
Le recourant conteste sa condamnation pour infraction grave à la LStup. Il reproche à la cour cantonale d'avoir arbitrairement retenu que le trafic portait sur 18,93 grammes de méthamphétamine (correspondant à 15,13 grammes de substance pure). Il critique les faits relatifs à la vente de méthamphétamine à C._ et invoque une violation de la présomption d'innocence sur ce point. Il s'en prend également au taux de pureté retenu.
1.1.
1.1.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (art. 105 al. 1 LTF), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat. Le Tribunal fédéral n'entre pas en matière sur les critiques de nature appellatoire. La présomption d'innocence, garantie par les art. 10 CPP, 32 al. 1 Cst., 14 par. 2 Pacte ONU II et 6 par. 2 CEDH, ainsi que son corollaire, le principe " in dubio pro reo ", concernent tant le fardeau de la preuve que l'appréciation des preuves au sens large. En tant que règle sur le fardeau de la preuve, elle signifie, au stade du jugement, que ce fardeau incombe à l'accusation et que le doute doit profiter au prévenu. Comme règle d'appréciation des preuves, la présomption d'innocence signifie que le juge ne doit pas se déclarer convaincu de l'existence d'un fait défavorable à l'accusé si, d'un point de vue objectif, il existe des doutes quant à l'existence de ce fait. Il importe peu qu'il subsiste des doutes seulement abstraits et théoriques, qui sont toujours possibles, une certitude absolue ne pouvant être exigée. Il doit s'agir de doutes sérieux et irréductibles, c'est-à-dire de doutes qui s'imposent à l'esprit en fonction de la situation objective. Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe " in dubio pro reo ", celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (ATF 145 IV 154 consid. 1.1 p. 155 s. et les références citées).
1.1.2. L'art. 19 al. 1 LStup réprime d'une peine privative de trois ans au plus ou d'une peine pécuniaire notamment celui qui, sans droit, entrepose, expédie, transporte, importe, exporte des stupéfiants ou les passe en transit (let. b); aliène ou prescrit des stupéfiants, en procure de toute autre manière à un tiers ou en met dans le commerce (let. c); possède, détient ou acquiert des stupéfiants ou s'en procure de toute autre manière (let. d); prend des mesures aux fins de commettre une des infractions visées aux lettres précédentes (let. g).
L'art. 19 al. 2 LStup prévoit les cas aggravés pour lesquels une peine privative de liberté d'un an au moins doit être prononcée. Il en va notamment ainsi de l'auteur qui sait ou ne peut ignorer que l'infraction peut directement ou indirectement mettre en danger la santé de nombreuses personnes (let. a). Cette formulation contient une condition objective (la mise en danger, directe ou indirecte, de la vie de nombreuses personnes) et une condition subjective (le fait que l'auteur le sache ou ne puisse l'ignorer). Les deux conditions sont cumulatives: l'intention de l'auteur (y compris le dol éventuel) ne peut suppléer l'absence de la condition objective (ATF 145 IV 312 consid. 2.1.1 p. 315).
Pour apprécier la mise en danger, directe ou indirecte, de la santé de nombreuses personnes, la quantité de stupéfiants en cause constitue un élément central d'appréciation, même si d'autres critères sont également susceptibles d'être pris en considération, tels les risques liés à une drogue particulièrement pure ou à un mélange dangereux (ATF 145 IV 312 consid. 2.1.1 et 2.1.2 p. 315 ss et les références citées).
S'agissant de la méthamphétamine, il n'est pas contraire au droit fédéral de se référer à l'étude réalisée en 2010 par la Société suisse de médecine légale, qui recommande de fixer ce seuil à 12 grammes de substance pure (ATF 145 IV 312 consid. 2.2 à 2.4 p. 318 s.). Pour déterminer si le seuil est atteint, il faut déterminer la quantité de drogue pure sur laquelle a porté l'infraction, qui est seule décisive. Si l'examen est impossible, dès lors que la drogue n'a pas pu être saisie, le juge peut admettre sans arbitraire, en l'absence d'autres éléments, que la drogue était d'une qualité moyenne et se référer au degré de pureté habituel sur le marché à l'époque et au lieu en question (ATF 145 IV 312 consid. 2.1.1 p. 315 s. et références citées).
Si l'auteur acquiert un stupéfiant pour en vendre une partie et en consommer l'autre partie, il commet, en concours idéal, des infractions à l'art. 19 LStup et à l'art. 19a LStup. Dans ce cas, la quantité destinée à la consommation personnelle ne doit pas être prise en compte pour dire si l'infraction à l'art. 19 LStup constitue un cas grave (ATF 145 IV 312 consid. 2.1.1 p. 316 et les arrêts cités).
1.2. La cour cantonale a retenu que le recourant s'était livré à un trafic de 5 grammes de méthamphétamine avec C._ (4 grammes à raison de 40 fr. par dose de 0,1 gramme et 1 gramme en échange de 20 pilules thaïes) en se fondant en particulier sur les déclarations crédibles, cohérentes et détaillées de ce dernier, qui avait admis l'achat de 6 grammes dans un premier temps, puis de 5 grammes lors d'une seconde audition. Cette deuxième version, plus favorable au recourant, a été retenue. Les déclarations de C._, qui n'avait pas besoin de mettre en cause le recourant pour favoriser sa position auprès des enquêteurs, étaient renforcées par les divers témoignages de personnes ayant mis en cause le recourant. Les déclarations de B._, laquelle ne faisait pas état du trafic de son époux, n'étaient pas fiables, vu ses liens avec l'intéressé.
La cour cantonale a pris en compte la drogue remise à l'épouse du recourant (13,33 grammes). En tout état, même à admettre la déduction de cette quantité de méthamphétamine, la cour cantonale a retenu que les quantités qu'il a vendues, respectivement échangées à C._ et E._ ajoutées à celles qu'il a reconnu avoir donné à des tiers, à savoir entre 10 et 20 grammes (PV d'audition 29, l. 133) réalisaient déjà le cas grave.
1.3.
1.3.1. Le recourant se livre à une longue présentation et interprétation des différentes déclarations en cause et rediscute librement l'appréciation qu'en a fait la cour cantonale, sans démontrer en quoi celle-ci serait entachée d'arbitraire. Ce procédé, purement appellatoire, est irrecevable. Il en va ainsi notamment, lorsqu'il affirme que sa version, selon laquelle il échangeait de la méthamphétamine contre d'autres drogues uniquement pour sa propre consommation devait être privilégiée à celle de C._, dès lors qu'elle serait concordante avec celle de son épouse.
1.3.2. Le recourant estime que la cour cantonale a fait preuve d'arbitraire en retenant que les déclarations de C._ étaient renforcées par les divers témoignages, affirmant que personne ne l'aurait mis en cause. Or il ressort clairement du procès-verbal d'audition récapitulative du recourant - auquel se réfère la cour cantonale - que D._ et E._, clientes du recourant, l'ont nommément mis en cause (PV d'audition 29 du 20 novembre 2018, p. 4 s. avec renvoi aux PV d'audition 15 p. 3 et 16 p. 3). En outre, selon le PV d'audition de G._, auquel se réfère le recourant, cette dernière lui a vendu environ 20 grammes en août 2017 (PV d'audition 12 p. 3). Aussi, le recourant échoue à démontrer que la cour cantonale aurait fait preuve d'arbitraire dans l'appréciation des déclarations de C._.
Pour le surplus, il va de soi que les témoignages auxquels la cour cantonale faisait référence émanaient des autres participants (respectivement vendeuse et acheteurs) au trafic reproché au recourant dans la présente procédure. Partant, son grief tendant au constat que la motivation cantonale serait insuffisante sur ce point doit être écarté (cf. sur l'obligation de motiver la décision, ATF 141 III 28 consid. 3.2.4 p. 41; 139 IV 179 consid. 2.2 p. 183).
1.3.3. Le recourant reproche à la cour cantonale d'avoir pris en compte la quantité de 13,33 grammes de méthamphétamine remise à son épouse, en se prévalant de l'arrêt publié aux ATF 120 IV 334.
Il ressort de cet arrêt que, pour que la mise en danger abstraite soit punissable, il faut que l'auteur ait franchi les limites d'un risque admissible (ATF 120 IV 334 consid. 2b/aa p. 339 en référence à l'ATF 117 IV 58 consid. 2 qui exclut la punissabilité d'un transport de grandes quantités de stupéfiants en vue de les éliminer en les versant dans le Rhin, dans des circonstances particulières). Dans cette affaire, il a été retenu que l'auteur n'avait pas franchi ces limites, au motif notamment qu'il avait la certitude que les 12 grammes d'héroïne cédés à une personne de son proche entourage, dépendante de la drogue, en vue de l'aider à sortir de ses graves difficultés, ne tomberaient pas en main de tiers (ATF 120 IV 334 consid. 2b/aa p. 339 s.).
En l'occurrence, le recourant a reconnu qu'il remettait de la drogue gratuite à de belles femmes, n'hésitait pas à faire l'intermédiaire avec ses amis et avait donné à des tiers, entre 10 et 20 grammes de drogue (jugement entrepris consid. 3.4 p. 20, PV 29, l. 133 et 139 s.). Il s'écarte de manière inadmissible des faits retenus par l'autorité précédente qui lient le Tribunal fédéral (art. 105 al. 1 LTF), lorsqu'il affirme qu'il était certain que la drogue cédée ne tomberait pas en mains de tiers. Au vu des circonstances d'espèce, le recourant ne peut rien déduire en sa faveur de l'arrêt précité s'agissant de la drogue qu'il a cédée à son épouse. Cela étant, il n'y a pas lieu d'entrer en matière sur les critiques que le recourant soulève contre la motivation subsidiaire de la cour cantonale quant à la mise en danger de la vie de nombreuses personnes.
1.3.4. Le recourant prétend que le taux de pureté moyen de 79,5% retenu par la cour cantonale serait une erreur manifeste et qu'il faudrait retenir un taux de 70% correspondant au " taux moyen de la drogue saisie en Suisse selon les statistiques de la SSML (...) en 2016 ". Or, il est établi et incontesté que le taux de pureté des lots de méthamphétamine saisis sur lui (12,3 grammes) lors de son interpellation était de 79,9% à 80%. Aussi, la cour cantonale pouvait, sans arbitraire, retenir que la drogue incriminée présentait un taux de pureté légèrement inférieur à ces valeurs (79,5%), étant rappelé qu'il avait acheté au moins 40 grammes de cette drogue dans les mois précédant son interpellation (art. 105 al. 1 LTF). L'étude réalisée dans le cadre d'une collaboration entre Addiction Suisse, l'Université de Lausanne et le CHUV, dont il ressort que la crystal meth, apparue en Suisse dès 2011, présente un taux de pureté généralement supérieur ou égal à 70% (cf. ATF 145 IV 312 consid. 2.3 p. 319) n'est pas apte à démontrer l'arbitraire de la constatation cantonale, au contraire, elle abonde dans le sens de ce qui précède.
1.3.5. Dans la mesure où le recourant échoue à démontrer qu'il aurait simplement échangé de la drogue pour sa propre consommation, il ne saurait être suivi lorsqu'il prétend n'avoir pas réalisé les comportements visés par l'art. 19 al. 1 LStup.
En définitive, sur la base des faits établis par la cour cantonale, sans que l'arbitraire ne soit démontré, la condamnation du recourant pour infraction qualifiée à la LStup ne prête pas flanc à la critique.
2.
Le recourant ne formule aucune critique quant à la fixation de la peine (cf. art. 47, 49 CP). Cela étant et compte tenu du sort du grief précédent, c'est en vain que le recourant demande que sa peine soit "revue drastiquement à la baisse", au motif que seule une infraction simple à la LStup devait être retenue.
3.
Le recourant reproche à la cour cantonale d'avoir violé l'art. 54 CP en refusant de l'exempter de toute peine pour les infractions réalisées lors de son interpellation du 23 août 2017.
3.1. A teneur de l'art. 54 CP, si l'auteur a été directement atteint par les conséquences de son acte au point qu'une peine serait inappropriée, l'autorité compétente renonce à le poursuivre, à le renvoyer devant le juge ou à lui infliger une peine. Sont visées les conséquences directes de l'acte, à savoir celles qui sont survenues lors de l'exécution de l'acte ou sont étroitement liées au résultat de l'acte. Est notamment atteint directement par les conséquences de son acte, celui qui subit des lésions physiques ou psychiques causées à l'occasion d'un accident qu'il a provoqué (ATF 119 IV 280 consid. 2b p. 283). Une exemption de peine se justifie lorsque l'auteur paraît déjà suffisamment puni et que la fonction compensatrice de la peine est déjà réalisée (ATF 137 IV 105 consid. 2.3 p. 108 s.). En cas d'infraction intentionnelle, une réduction de la peine en application de l'art. 54 CP est possible, mais ne doit être admise qu'avec retenue (arrêts 6B_515/2019 du 11 juin 2019 consid. 3; 6B_107/2012 du 25 avril 2012 consid. 3.1). Pour déterminer si une peine serait disproportionnée, il convient de mettre en balance les conséquences de l'acte et la faute de l'auteur. Ainsi, l'art. 54 CP peut s'appliquer dans le cas où une faute légère a entraîné des conséquences directes très lourdes pour l'auteur et à l'inverse, ne doit pas être appliqué lorsqu'une faute grave n'a entraîné que des conséquences légères pour l'auteur. Le juge doit prendre sa décision en analysant in concreto les circonstances du cas et il dispose d'un large pouvoir d'appréciation (cf. arrêts 6B_515/2019 du 11 juin 2019 consid. 3; 6B_107/2012 du 25 avril 2012 consid. 3.1; cf. ATF 121 IV 162 consid. 2d p. 175; 117 IV 245 consid. 2a p. 247 s.).
3.2. En substance, la cour cantonale a relevé que le recourant avait fait preuve de violence gratuite et que sa réaction était totalement excessive et inacceptable. Lui seul était responsable des blessures qui lui ont été causées fortuitement par les policiers, lesquels ont dû se mettre à trois pour le maîtriser et ont dû user de divers moyens de contrainte physique. Elle a exclu l'application de l'art. 54 CP.
3.3. Le recourant présente sa propre version des événements et affirme, sans tenter de démontrer l'arbitraire dans l'appréciation cantonale, qu'il n'aurait pas usé de violence et que les blessures n'ont pas été infligées fortuitement. Purement appellatoire, un tel procédé est irrecevable (cf. art. 106 al. 2 LTF). En tout état, le seul fait que le recourant ait " eu de la peine à respirer et dû cracher " ou présenté des contusions ne saurait constituer une conséquence directe et lourde des infractions intentionnelles qu'il a commises, au point de considérer qu'une peine apparaîtrait disproportionnée compte tenu de sa faute (cf. ATF 137 IV 105 sur portée de l'exemption de peine lorsque l'auteur a commis plusieurs délits).
Aussi, c'est sans violer le droit fédéral que la cour cantonale a exclu l'application de l'art. 54 CP.
4.
Le recourant estime que les conditions du sursis sont réunies en l'espèce.
4.1. Selon l'art. 42 al. 1 CP, le juge suspend en règle générale l'exécution d'une peine privative de liberté de deux ans au plus lorsqu'une peine ferme ne paraît pas nécessaire pour détourner l'auteur d'autres crimes ou délits. L'art. 43 al. 1 CP prévoit que le juge peut suspendre partiellement l'exécution d'une peine privative de liberté d'un an au moins et de trois ans au plus afin de tenir compte de façon appropriée de la faute de l'auteur. Ces dispositions sont applicables en l'espèce sans égard à la modification entrée en vigueur le 1er janvier 2018, qui n'est pas plus favorable à l'intéressé (cf. art. 2 al. 2 CP; arrêt 6B_388/2018 du 13 septembre 2018 consid. 4.1).
Pour formuler un pronostic sur l'amendement de l'auteur, le juge doit se livrer à une appréciation d'ensemble, tenant compte des circonstances de l'infraction, des antécédents de l'auteur, de sa réputation et de sa situation personnelle au moment du jugement, notamment de l'état d'esprit qu'il manifeste. Il doit tenir compte de tous les éléments propres à éclairer l'ensemble du caractère de l'accusé et ses chances d'amendement. Il ne peut accorder un poids particulier à certains critères et en négliger d'autres qui sont pertinents (ATF 135 IV 180 consid. 2.1 p. 185 s.; 134 IV 1 consid. 4.2.1 p. 5; arrêts 6B_422/2019 du 5 juin 2019 consid. 7.1.2; 6B_276/2018 du 24 septembre 2018 consid. 3.1).
Dans l'émission du pronostic, le juge dispose d'un large pouvoir d'appréciation. Le Tribunal fédéral n'intervient que s'il en a abusé, notamment lorsqu'il a omis de tenir compte de critères pertinents et s'est fondé exclusivement sur les antécédents du condamné (ATF 134 IV 140 consid. 4.2 p. 143; 133 IV 201 consid. 2.3 p. 204; arrêt 6B_422/2019 du 5 juin 2019 consid. 7.1.2).
4.2. La cour cantonale a considéré que le pronostic du recourant était défavorable, en tenant compte notamment de ses antécédents, des violences conjugales faites à son épouse (telles qu'elles ressortent du dossier et qui sont admises), de son oisiveté depuis 2015, ainsi que de la reprise de la consommation de stupéfiants après sa sortie de prison début 2018 (son sevrage étant trop récent pour en tirer des conclusions). En outre, depuis cette date, le recourant n'avait pas jugé utile de chercher un travail et attendait simplement que l'ORP veuille bien le reprendre.
4.3. Les précisions qu'apporte le recourant sur son état psychique à la suite du décès de sa mère et sur ses intentions futures en lien avec la consommation de stupéfiants ainsi que sa recherche de travail sont purement appellatoires, partant irrecevables (art. 106 al. 2 LTF). Il ne soulève pas de grief d'arbitraire s'agissant de la constatation que les violences conjugales ressortent du dossier et ont été admises (art. 105 al. 1 LTF). Ainsi, c'est en vain qu'il précise n'avoir pas fait l'objet d'une condamnation pénale pour ces faits.
Par ailleurs, dès lors que le juge doit procéder à une appréciation d'ensemble, le recourant ne saurait être suivi en tant qu'il distingue chaque critère pris en compte par la cour cantonale pour affirmer que, pris isolément, il ne suffirait pas à émettre un pronostic défavorable. Pour le surplus, en se contentant d'affirmer que les éléments retenus par la cour cantonale ne sont pas pertinents ni suffisants pour justifier un pronostic défavorable, il échoue à démontrer dans quelle mesure elle aurait abusé de son large pouvoir d'appréciation ou aurait omis de tenir compte de critères pertinents dans l'établissement du pronostic.
Le grief doit être rejeté dans la mesure où il est recevable.
5.
Compte tenu du sort des griefs précédents, la conclusion subsidiaire du recourant, tendant à l'allocation d'une indemnité financière pour sa détention est sans objet, étant rappelé, au demeurant, que le mode et l'étendue de la réparation sont laissés à l'appréciation du juge (ATF 142 IV 245 consid. 4.2 et 4.3 p. 248 ss; cf. arrêt 6B_137/2016 du 1er décembre 2016 consid. 1.1).
6.
Le recourant s'oppose à son expulsion du territoire suisse, prétendant ne s'être rendu coupable que d'une infraction simple à la LStup " pour quelques grammes de méthamphétamine ". Dans la mesure où le recourant se fonde sur la prémisse que l'infraction aggravée à la LStup au sens de l'art. 19 al. 2 n'est pas réalisée, son grief tombe à faux (cf. supra consid. 1). Pour le surplus, il ne forme aucune critique contre son expulsion, dont les conditions sont réunies en l'espèce (cf. art. 66a al. 1 let. o CP).
7.
Le recours doit être rejeté dans la mesure où il est recevable. Comme il était dépourvu de chances de succès, la demande d'assistance judiciaire doit être rejetée (art. 64 al. 1 LTF). Le recourant, qui succombe, supportera les frais judiciaires (art. 66 al. 1 LTF), dont le montant sera fixé en tenant compte de sa situation financière.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 5 février 2020
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Klinke